记DateTime.Now.ToString()遇到的一个坑

最近在编写一个程序中遇到的

程序的简要逻辑就是一个timer控件

1.获取当前时间的短时间,例如 13:15

2.使用获取到的短时间去一个列表中查询是否有匹配的,列表中是一串短时间,类似 {"13:15","14:00","15:14".....}

刚开始使用的是  DateTime.Now.ToString("t")  在本机上可以在匹配到列表中已存在的短时间

但程序写好后安装到客户机上却有部分功能丢失

找了好久,在本地机器上调试了都没有任何问题,最后在打印当前获取的时间时

发现在客户机上显示的是 上午 13:15

而在本地机上显示的是 13:15

到此才发现原来客户机上使用的是12小时制,而本机使用的却是24小时制

依次试了以下几种方法来获取,均告失败,都是显示的诸如  "上午 13:15"  这种时间格式

DateTime dt = DateTime.Now;
            string s1 = dt.ToShortTimeString();
            string s2 = dt.GetDateTimeFormats('t')[0];
            string s3 = string.Format("{0:t}", dt);
            string s4 = dt.ToString("t");

最后使用的为:

dt.ToString("HH:mm")

经过测试,无论在机器上是设置的12小时制还是24小时制均能获取到需要的短时间样式(13:15)

原文地址:https://www.cnblogs.com/rbzz/p/9139229.html