C# 自定义时间格式

  1. this.label2.Text = System.DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss");  

系统设置的日期格式为:yyyy/M/d或yyyy/MM/dd

此时执行程序,一切正常,显示效果为:

 

但是,当我将系统日期格式设置为:yyyy-MM-dd(或其他不带“/”的系统日期格式)

再执行程序,显示的时间格式却发生了变化,和系统设置的时间格式一致了。

效果图如下:

通过反复试验发现,程序最终显示的日期格式总是和系统设置的日期格式保持一致,也就是说代码中的DateTme.ToString("yyyy/MM/dd HH:mm:ss");部分不起作用了。

看来,要想DateTme.ToString("yyyy/MM/dd HH:mm:ss")的设置起作用,必须排除系统日期设置的格式的影响,经过一番查找,发现:可以使用System.Globalization.DateTimeFormatInfo.InvariantInfo来排除当前Culture的影响。

于是,将代码改为:

[csharp]  view plain copy
 
  1. this.label2.Text = System.DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss",System.Globalization.DateTimeFormatInfo.InvariantInfo);  


这样的话,不管系统日期格式被设置成什么,显示的日期格式均为:yyyy/MM/dd

一切,ok。

猜你喜欢

转载自blog.csdn.net/qq_40267217/article/details/80609351