以下d,e,f值之间的真正区别是什么? “ ToUniversalTime()”实际上是做什么的?
var d = DateTime.Now;
var e = d.ToUniversalTime();
var f = e;
有人知道吗?谢谢。
备注:当'Created'字段是datetime sql字段并且包含UTC时间时,我们在EF查询中检测到差异:
var itemsD = ctx.Log.Where(p => p.Created > d);
var itemsE = ctx.Log.Where(p => p.Created > e);
答案 0 :(得分:4)
“ ToUniversalTime”方法返回的值由当前DateTime对象的“ Kind”属性确定。下面描述了可能的结果:
Kind: Utc
结果:不执行任何转换。
Kind: Local.
结果:当前的DateTime对象被转换为UTC。
Kind: Unspecified.
结果:假定当前的DateTime对象为本地时间,并且转换的方式类似于Kind为Local。
默认值为“未指定”。
ToUniversalTime方法将DateTime值从本地时间转换为UTC。要将非本地时区的时间转换为UTC,请使用TimeZoneInfo.ConvertTimeToUtc(DateTime,TimeZoneInfo)方法。要转换与UTC的偏移量已知的时间,请使用ToUniversalTime方法。
答案 1 :(得分:0)
方法ToUniversalTime将本地时间的DateTime值转换为UTC小时。 如果要转换已知UTC值的时间值,则可以使用此方法