2016-12-27 95 views
0

我需要一個值轉換爲C#日期時間。字符串轉換(UTC)爲日期時間(EST)

數據看起來象下面這樣:

20161021-12:55:16.000

20161021-13:22:09.974

我試圖

String dtTime = "20161021-13:22:09.974"; 
dtTime = dtTime.Replace("-"," "); 

DateTime outPut = Convert.ToDateTime(dtTime); 

,它拋出一個錯誤。

我能得到幫助,這些樣品轉化成有效的日期時間?

而且這些值都在UTC。

我需要將它們轉換爲EST。

感謝您的幫助。

+2

請記住,「它拋出一個錯誤」被視爲本網站上排斥短語。我懷疑在這種情況下承擔相關性的回答細節,但它是指定拋出錯誤很好的做法。 –

回答

4

您需要使用DateTime.ParseExact與您的特定格式。

看看這個:https://msdn.microsoft.com/es-es/library/w2sa9yss(v=vs.110).aspx

對於東部時間轉換,嘗試這樣的事情(與你之日起代替DateTime.Now):

var timeUtc = DateTime.UtcNow; 
TimeZoneInfo easternZone = TimeZoneInfo.FindSystemTimeZoneById("Eastern Standard Time"); 
DateTime easternTime = TimeZoneInfo.ConvertTimeFromUtc(timeUtc, easternZone); 
0

我會用TryParseExact:

String dtTime = "20161021-13:22:09.974"; 

DateTime outPut; 
if (DateTime.TryParseExact(dtTime, "yyyyMMdd-HH:mm:ss.fff", null, DateTimeStyles.None, out outPut)) 
{ 
    var est = TimeZoneInfo.ConvertTimeFromUtc(outPut, 
          TimeZoneInfo.FindSystemTimeZoneById("Eastern Standard Time")); 
    Console.WriteLine(est); 
} 
相關問題