ToUnixTimeMilliseconds在返回之前将日期转换为UTC。如果你不想要呢?



我正在开发一个WebAPI。我有一个叫做赋值的实体。赋值有一个名为datesscheduled的属性,它是一个长,表示以毫秒为单位的UnixTimeStamp。在创建赋值语句时,我有一个名为BeginningOfDay(long date)的方法它看起来像这样

public static long BeginningOfDay(long date)
{
DateTimeOffset beg = DateTime.SpecifyKind(DateTimeOffset.FromUnixTimeMilliseconds(date).Date, DateTimeKind.Utc);
return beg.ToUnixTimeMilliseconds();
}

如果用户传入02-10-2021 21:01:00,该方法将返回我02-10-2021 00:00:00。
现在日期,用户通过在已经在Utc。但是当调用beg.ToUnixTimeMilliseconds()时,它再次将其转换为UTC。这导致了很多问题?我希望你们能理解我的问题。当它在本地运行时,它工作得很好。但在服务器上,由于它的位置,它会出错。给定参数1633903199它返回1633816800局部正确。但是在azure上相同的参数给出1633824000

UtcDateTime代替.Date,这样你所有的代码将与UTC日期对齐。

代码将是这样的:

DateTimeOffset.FromUnixTimeMilliseconds(date).UtcDateTime

相关内容

  • 没有找到相关文章

最新更新