我需要将值转换为C#DateTime。
数据如下所示:
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。
感谢您的帮助。
答案 0 :(得分: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);
答案 1 :(得分: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);
}