【发布时间】:2020-02-04 09:18:22
【问题描述】:
我正在尝试将以毫秒为单位的时间戳转换为本地日期时间。但这很奇怪。
日期增加 1 天。我不知道我听起来有多愚蠢,但我真的很高兴有人对此有所了解。
代码:
public static DateTime ConvertToLocalDate(string timeInMilliseconds){
double timeInTicks = double.Parse(timeInMilliseconds);
TimeSpan dateTimeSpan = TimeSpan.FromMilliseconds(timeInTicks);
DateTime dateAfterEpoch = new DateTime(1970, 1, 1) + dateTimeSpan;
DateTime dateInLocalTimeFormat = dateAfterEpoch.ToLocalTime();
return dateInLocalTimeFormat;
}
例如,如果我通过:
1579631400000 相当于:2020-01-21T18:30:00
它返回:1/22/2020 12:00:00 AM
怎么了?
【问题讨论】:
-
时区,大概。
-
无法复制:dotnetfiddle.net/Wh0IdN。我怀疑你当地的时区是+5.30?或许是印度?
-
抱歉,我不明白如何修复我的代码
-
你得到的是“你的”时区的时间。将其转换为UTC,然后您将得到它。
ConvertToLocalDate("1579631400000").ToUniversalTime()
标签: c# datetime datetime-format