我使用DateTime.UtcNow.ToLongTimeString()来获取当前的时间字符串。
然而,它的行为很奇怪,有时它返回的时间类似于3:10:00,有时类似于03:10:00 (前导为零)。为什么会发生这种事?
我在应用程序启动时设置了一个区域性。
Thread.CurrentThread.CurrentCulture = new CultureInfo(...);
Thread.CurrentThread.CurrentUICulture = new CultureInfo(...);时间字符串的不同结果来自于一个任务(与我现在看到的不同)。因此,我创建了一个任务和.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
发布于 2012-12-14 06:55:52
然而,它的行为很奇怪,有时它返回时间为3:10:00,有时则为03:10:00 (前导为零)。
你没有说过这种事情发生在哪里,但如果你使用不同的文化,它肯定会发生。通常,如果没有前导零,我也会看到一个am/pm指示符。
如果希望得到一致的结果,请始终指定相同的区域性(例如,CultureInfo.InvariantCulture)。
当然,如果这一切都在同一个系统中而没有改变文化设置,那就不一样了。
https://stackoverflow.com/questions/13874057
复制相似问题