我的时间戳是这样的:20151020T160000Z
我写了以下逻辑来从时间戳中获取日期时间:
replace(string(20151020T160000Z), '^(19|20\d\d)(0[1-9]|1[012])(0[1-9]|[12][0-9]|3[01])T(20|21|22|23|[0-1]\d)([0-5]\d)([0-5][0-9])Z', '$3-$2-$1 $4:$5')
此代码的输出为:20-10-2015 16:00 但我希望按UTC + 2输出,即: 20-10-2015 18:00
答案 0 :(得分:2)
执行此操作的方法是DateTime.ParseExact
和TimeZoneInfo
提供的实用程序的组合。注意我不知道你正在使用什么时区,所以我使用了UTC大约+2。
var input = "20151020T160000Z";
var dt = DateTime.ParseExact(input, "yyyyMMdd'T'HHmmss'Z'", CultureInfo.CurrentCulture);
var newDT = TimeZoneInfo.ConvertTimeFromUtc(dt, TimeZoneInfo.FindSystemTimeZoneById("Middle East Standard Time"));
Console.WriteLine(newDT);