DateTime ToString(“dd/MM/yyyy”) 返回 dd.MM.yyyy
Posted
技术标签:
【中文标题】DateTime ToString(“dd/MM/yyyy”) 返回 dd.MM.yyyy【英文标题】:DateTime ToString(“dd/MM/yyyy”) returns dd.MM.yyyy 【发布时间】:2013-02-22 18:30:04 【问题描述】:我也尝试过屏蔽格式化字符串中的“/”符号,但效果不佳。我的最终目标是获取以“/”符号作为分隔符的日期。我想我可以使用DateTime.ToString(“dd/MM/yyyy”).Replace('.', '/')
,但感觉有点过分了。
【问题讨论】:
【参考方案1】:日期/时间格式字符串中的/
字符代表“格式提供程序的日期分隔符是什么”。由于您没有提供格式提供程序 Thread.CurrentCulture
被使用,并且在您的情况下,当前文化使用 .
作为日期分隔符。
如果您想使用 文字 斜线,请将其放在单引号内:
dateTime.ToString("dd'/'MM'/'yyyy");
或者,您可以指定日期分隔符为 /
的格式提供程序:
dateTime.ToString("dd/MM/yyyy", CultureInfo.InvariantCulture);
以上都是documented on MSDN。
See the difference in a live example.
【讨论】:
这是唯一真正回答问题的为什么部分的答案(即说“/”是特定于文化的分隔符)+1【参考方案2】:string s = dt.ToString("dd/M/yyyy", CultureInfo.InvariantCulture)
【讨论】:
【参考方案3】:这是因为ToString
works by default的方式,按照现在的文化:
此方法使用来自当前的格式信息 文化。
所以,覆盖它:
string date = dt.ToString("dd/M/yyyy", CultureInfo.InvariantCulture)
【讨论】:
【参考方案4】:这行得通(注意InvariantCulture
):
DateTime.Now.ToString("dd/MM/yyyy", CultureInfo.InvariantCulture)
如果未指定 CultureInfo
,则将使用 CurrentCulture
。如果这是一种不使用斜杠作为日期分隔符的区域性,则将其替换为实际区域性日期分隔符。
【讨论】:
以上是关于DateTime ToString(“dd/MM/yyyy”) 返回 dd.MM.yyyy的主要内容,如果未能解决你的问题,请参考以下文章
将yyyyMMdd,dd/MM/yyyy 类型字符串转换为datetime 类型 yyyy-MM-dd C#
DateTime 字符串格式 (dd.MM) 本地化 XAML
在SQL中将dd / mm / yyyy VARCHAR转换为yyyy-dd-mm DATETIME