And*_*ndy 2 c# datetime string-formatting
我一直在使用自定义格式显示DateTimes,如下所示:http://msdn.microsoft.com/en-us/library/8kb3ddd4.aspx
例如
new DateTime(2011,10,5).ToString("dd");
Run Code Online (Sandbox Code Playgroud)
返回: "05"
和:
new DateTime(2011,10,5).ToString("d MM");
Run Code Online (Sandbox Code Playgroud)
返回 "5 10"
这两者都是我所期望的,但是:
new DateTime(2011,10,5).ToString("d");
Run Code Online (Sandbox Code Playgroud)
返回: "05/10/2011"
当我希望它返回时: "5"
这在实践中并不重要,因为你会使用:new DateTime(2011,10,5).Day获得一天,但我感兴趣的是为什么自定义格式不能像我预期的那样工作.
尝试阅读此处标准日期和时间格式字符串 "d" Short date pattern..是的,重复使用d:-) 可能有点愚蠢,幸运的是它是一个极端的案例.
一般情况下CultureInfo.InvariantCulture,除非您完全了解自己在做什么,并且知道您的程序不会在国外销售,否则您应该始终使用,而不是输入/输出给用户的东西.因此,如果您要向用户显示日期,请使用他的文化/当地文化.如果您要向用户询问相同的日期.但是如果您使用日期来命名文件或进行一些内部操作,通常最好使用它CultureInfo.InvariantCulture.
试试这个:
Console.WriteLine(DateTime.Now.ToString("MM", new System.Globalization.CultureInfo("ar-SA")));
Console.WriteLine(DateTime.Now.ToString("yyyy", new System.Globalization.CultureInfo("ar-SA")));
Console.WriteLine(DateTime.Now.ToString("MM", System.Globalization.CultureInfo.InvariantCulture));
Console.WriteLine(DateTime.Now.ToString("yyyy", System.Globalization.CultureInfo.InvariantCulture));
Run Code Online (Sandbox Code Playgroud)
告诉我你看到了什么:-)
| 归档时间: |
|
| 查看次数: |
670 次 |
| 最近记录: |