对我来说他们都是一样的。 UtcNow只是一个捷径吗?DateTime.UtcNow和DateTime.Now.ToUniversalTime()之间有什么区别
18
A
回答
20
其实这是相反的。
public static DateTime Now {
get {
return UtcNow.ToLocalTime();
}
}
3
在Documentation for UtcNow中有一个很长的例子,它表明它们是相同的。
0
我觉得用DateTime.UTCNow会考虑为UTC的DateTime.Kind属性的值,而与ToUniversalTime可以提供Kind属性与当地DateTime对象:为Now
属性来实现。
1
那么,实际执行(你可以看到它在referencesource):
public static DateTime Now {
get {
Contract.Ensures(Contract.Result<DateTime>().Kind == DateTimeKind.Local);
DateTime utc = UtcNow;
Boolean isAmbiguousLocalDst = false;
Int64 offset = TimeZoneInfo.GetDateTimeNowUtcOffsetFromUtc(utc, out isAmbiguousLocalDst).Ticks;
long tick = utc.Ticks + offset;
if (tick>DateTime.MaxTicks) {
return new DateTime(DateTime.MaxTicks, DateTimeKind.Local);
}
if (tick<DateTime.MinTicks) {
return new DateTime(DateTime.MinTicks, DateTimeKind.Local);
}
return new DateTime(tick, DateTimeKind.Local, isAmbiguousLocalDst);
}
}
ToUniversalTime()
电话TimeZoneInfo.ConvertTimeToUtc(this, TimeZoneInfoOptions.NoThrowOnInvalidTime)
而UtcNow就是:
long ticks = 0;
ticks = GetSystemTimeAsFileTime();
return new DateTime(((UInt64)(ticks + FileTimeOffset)) | KindUtc);
+0
如果你看一下'ToLocalTime实施'你会发现'Now'的当前实现大多只是一个手动内联和简化的'return UtcNow.ToLocalTime();'版本。 – Guffa 2017-02-10 16:30:26
0
它不是一个快捷方式,DateTime.Now内部使用DateTime.UtcNow,然后应用本地化。简而言之,如果您已经有DateTime.Now并且需要将其转换为UTC,则使用ToUniversalTime(),如果您只想以UTC检索当前时间,请使用DateTime.UtcNow。
相关问题
- 1. 为什么datetime.utcnow()和datetime.now(timezone('UTC'))之间有区别?
- 2. dpm()和dsm()之间有什么区别?
- 3. @dynamic和@synthesize之间有什么区别?
- 4. vbNullString和“”之间有什么区别吗?
- 5. * zoom和zoom之间有什么区别?
- 6. String.Concat,string.format和+之间有什么区别?
- 7. StaticLayout和DynamicLayout之间有什么区别
- 8. WebServiceBinding.EmitConformanceClaims和WebServiceBinding.ConformanceClaims之间有什么区别?
- 9. :: after和after之间有什么区别?
- 10. %.02f和%.2f之间有什么区别?
- 11. {$ var}和$ var之间有什么区别?
- 12. ReleaseFloatArrayElements和DeleteLocalRef之间有什么区别
- 13. {0}和“”之间有什么区别?
- 14. getA()和this.getA()之间有什么区别?
- 15. @observable和@published之间有什么区别
- 16. $ {}和#{}之间有什么区别?
- 17. url.getFile()和getpath()之间有什么区别?
- 18. KVC和Properties之间有什么区别?
- 19. Lazy.Force()和Lazy.Value之间有什么区别
- 20. “层”和“层”之间有什么区别?
- 21. 1.1em和1.05em之间有什么区别?
- 22. proc和lambda之间有什么区别?
- 23. ViewFlipper和ViewSwitcher之间有什么区别
- 24. typedef和宏之间有什么区别?
- 25. “$^N”和“$ +”之间有什么区别?
- 26. NSInvocation和block之间有什么区别?
- 27. -existingObjectWithID:error:和-objectWithID之间有什么区别?
- 28. {0}和+之间有什么区别?
- 29. Locationmanager.locationListener和com.google.android.gms.location.LocationListener之间有什么区别?
- 30. $ .cache和$ .data之间有什么区别?
这样算下来DateTime.Now.ToUniversalTime()是一样的UtcNow.ToLocalTime()。ToUniversalTime() – Anthony 2010-08-31 08:41:05
@Anthony都没有,看到我的回答(有点晚) – 2017-02-02 10:32:13