我有一堆数据,其中的DateTime是协调世界时的,我想通过使用.GroupBy
按日期对每个数据进行分组,但我想根据标准或标准对它们进行分组。有没有办法使用EF核心来做到这一点?我还没有成功地发现使用DateTimeOffset
或TimeSpan
是否可以做到这一点。
发布于 2021-02-16 20:01:06
您可以使用TimeZoneInfo.FindSystemTimeZoneById
方法创建一个表示东部标准时间的TimeZoneInfo
对象。(注意:这取决于操作系统时区规则,例如,在Windows的情况下,这些规则并不涵盖所有DST历史记录。)
var tzest = TimeZoneInfo.FindSystemTimeZoneById("Eastern Standard Time");
然后,您可以将DateTime.Kind
为DateTimeKind.Utc
的任何给定DateTime
test
转换为新的时区:
var testest = TimeZoneInfo.ConvertTime(test, tzest);
如果您的DateTime
将Kind
作为Unspecified
,则可以使用TimeZoneInfo.ConvertTimeFromUtc()
var testest = TimeZoneInfo.ConvertTimeFromUtc(test, tzest);
如果test
具有TimeZoneKind.Local
,则将抛出异常,您将需要重写TimeZoneKind
var testest = TimeZoneInfo.ConvertTimeFromUtc(DateTime.SpecifyKind(test, DateTimeKind.Utc), tzest);
https://stackoverflow.com/questions/66230256
复制相似问题