首页 新闻 搜索 专区 学院

为啥DateTime.Now.ToShortTimeString() 不同环境不同输出

0
[已解决问题] 解决于 2014-08-13 21:23

我在本地电脑 DateTime.Now.ToShortTimeString() 输出11:12

我在美国那边的电脑里DateTime.Now.ToShortTimeString() 输出11:12 PM

 

为啥 有的自动带上PM AM 有的不会带上呢?是设置问题吗?

我在本地电脑 手动CultureInfo指定到 en-us

输出ToShortTimeString() 还是没有加上PM AM

吴顶天的主页 吴顶天 | 初学一级 | 园豆:39
提问于:2014-08-04 14:13
< >
分享
最佳答案
0

微软就是这么设计,你可以打开Control Panel(控制面板)里面的区域和语言设置看看,这里面设置的就是长日期、短日期、长时间、短时间应该怎么表示的。如果是短时间H:mm,则一定是24小时方式表达,也就不会出现PM/AM了,你希望出现AM/PM,这是12小时表达方式,请修改为h:mm。

也就是说,你的软件安装到了别人的电脑,可能输出的结果不是你想要的。除非你顺便把

他的电脑设置也修改了。

如果对于输出的字符串有强迫症的话,就只能自己实现日期时间的ToString了。

奖励园豆:5
爱编程的大叔 | 高人七级 |园豆:30813 | 2014-08-04 14:38

那为啥我的长段时间输出 都没PM AM 别人电脑就有

吴顶天 | 园豆:39 (初学一级) | 2014-08-04 15:07

@Dellienware: 

长时间输出,我也是没有的PM的。长时间设置为H:mm:ss,这样是没有AM/PM的。

别人电脑有是因为他的电脑那么设置的。

我的软件在客户那儿还曾经发生过一件事,客户打来问我软件里面怎么金额没有小数点,

我晕,找了半天,明明有啊,后来客户告诉我说,旁边一台电脑是有小数点的,我才反应过来。

原来客户的这台电脑被人设置为小数点后小数位零位。

再后来才知道,原来电脑公司使用的GHOST版Windows系统都几乎有这个毛病,

不知道那些做GHOST系统的人怎么想的,可能他们都不用一元以下的货币了。

爱编程的大叔 | 园豆:30813 (高人七级) | 2014-08-04 15:13
其他回答(2)
1

时间和时区 和语言都是有关的

时间是所有基本类型中最难出来的 楼主自己看着办吧

小眼睛老鼠 | 园豆:2779 (老鸟四级) | 2014-08-05 16:49
0

一般,我们输出都会加上格式,比如说ToString("yyyy-MM-dd"),特别在往数据库里面写数据的时候。如果不这样,经常会出错。

forhells | 园豆:522 (小虾三级) | 2014-08-05 19:30
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册