2016-12-27 7 views
0

Ich muss einen Wert in eine C# DateTime konvertieren.Zeichenfolge (UTC) in DateTime (EST) konvertieren

Daten sieht unten wie:

20161021-12: 55: 16,000

20161021-13: 22: 09,974

I

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

DateTime outPut = Convert.ToDateTime(dtTime); 

und es wirft einen Fehler.

Kann ich Hilfe bekommen, um diese Proben in eine gültige Datumszeit zu konvertieren?

Auch diese Werte sind in UTC.

Ich muss sie in EST konvertieren.

Schätzen Sie Ihre Hilfe.

+2

Bitte beachten Sie, dass "es einen Fehler wirft" als eine abstoßende Phrase auf dieser Website betrachtet wird. Ich bezweifle, dass die Besonderheiten in diesem Fall Relevanz für Antworten haben, aber es ist eine gute Übung, den geworfenen Fehler anzugeben. –

Antwort

4

Sie müssen DateTime.ParseExact mit Ihrem spezifischen Format verwenden.

Check out this: https://msdn.microsoft.com/es-es/library/w2sa9yss(v=vs.110).aspx

Für die östliche Zeitumstellung, versuchen Sie so etwas wie dieses (ersetzen DateTime.Now mit Datum):

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

würde ich 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); 
} 
Verwandte Themen