我使用DateTime.UtcNow.ToLongTimeString()
来获取当前时间字符串。
然而它表现得很奇怪,有时会返回时间3:10:00
,有时像03:10:00
(前导零)。为什么会这样?
我在应用程序启动时设置了一种文化
Thread.CurrentThread.CurrentCulture = new CultureInfo(...);
Thread.CurrentThread.CurrentUICulture = new CultureInfo(...);
时间字符串的不同结果来自一个任务(从我现在看到的)。所以我创建了一个Task .Wait()
来完成它。在任务内部,时间将以不同的方式转换为字符串。
更新
对于那些感兴趣的人,我发现这是一些有用的阅读:
Is there a way of setting culture for a whole application? All current threads and new threads?
http://msdn.microsoft.com/en-us/library/system.globalization.cultureinfo.defaultthreadcurrentculture.aspx
答案 0 :(得分:1)
然而它表现得很奇怪,有时会像3:10:00那样返回时间,有时像03:10:00(前导零)。
你还没有说过发生这种情况的 - 但如果你使用不同的文化,它肯定会发生。通常没有前导零,我期望看到上午/下午指示符。
如果您想要一致的结果,请始终指定相同的文化(例如CultureInfo.InvariantCulture
)。
当然,如果这一切都在同一系统上而没有改变文化背景,那就是另一回事了。