首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >DateTime.ToLongTimeString()生成不同的字符串

DateTime.ToLongTimeString()生成不同的字符串
EN

Stack Overflow用户
提问于 2012-12-14 06:53:32
回答 1查看 3.8K关注 0票数 0

我使用DateTime.UtcNow.ToLongTimeString()来获取当前的时间字符串。

然而,它的行为很奇怪,有时它返回的时间类似于3:10:00,有时类似于03:10:00 (前导为零)。为什么会发生这种事?

我在应用程序启动时设置了一个区域性。

代码语言:javascript
复制
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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-12-14 06:55:52

然而,它的行为很奇怪,有时它返回时间为3:10:00,有时则为03:10:00 (前导为零)。

你没有说过这种事情发生在哪里,但如果你使用不同的文化,它肯定会发生。通常,如果没有前导零,我也会看到一个am/pm指示符。

如果希望得到一致的结果,请始终指定相同的区域性(例如,CultureInfo.InvariantCulture)。

当然,如果这一切都在同一个系统中而没有改变文化设置,那就不一样了。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13874057

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档