C# 为什么DateTime.ToString(“dd/MM/yyyy”)会给我dd-MM-yyyy?
我希望将我的datetime转换为格式为“dd/MM/yyyy”的字符串 每当我使用C# 为什么DateTime.ToString(“dd/MM/yyyy”)会给我dd-MM-yyyy?,c#,.net,datetime,C#,.net,Datetime,我希望将我的datetime转换为格式为“dd/MM/yyyy”的字符串 每当我使用DateTime.ToString(“dd/MM/yyyy”)转换它时,我就会得到dd-MM-yyyy 我需要设置一些文化信息吗?可能是愚蠢的问题/答案,但您是否尝试过dd/MM/yyyy?注意大写字母 mm表示以零开头的分钟数。所以我怀疑这是你想要的 这可能会有帮助:斜杠是一个日期分隔符,因此它将使用当前区域性日期分隔符 如果要将其硬编码为始终使用斜杠,可以执行以下操作: DateTime.ToString("
DateTime.ToString(“dd/MM/yyyy”)
转换它时,我就会得到dd-MM-yyyy
我需要设置一些文化信息吗?可能是愚蠢的问题/答案,但您是否尝试过
dd/MM/yyyy
?注意大写字母
mm
表示以零开头的分钟数。所以我怀疑这是你想要的
这可能会有帮助:斜杠是一个日期分隔符,因此它将使用当前区域性日期分隔符 如果要将其硬编码为始终使用斜杠,可以执行以下操作:
DateTime.ToString("dd'/'MM'/'yyyy")
<td>@(((DateTime)detalle.fec).ToString("dd'/'MM'/'yyyy"))</td>
作为DateTime的第二个参数Pass,它将返回您想要的字符串,即使是非常特殊的格式:
DateTime.Now.ToString("dd|MM|yyyy", CultureInfo.InvariantCulture)
将返回:
28 | 02 | 2014添加
CultureInfo.InvariantCulture
作为参数:
using System.Globalization;
...
var dateTime = new DateTime(2016,8,16);
dateTime.ToString("dd/MM/yyyy", CultureInfo.InvariantCulture);
将返回:
"16/08/2016"
如果使用MVC表,它的工作原理如下:
DateTime.ToString("dd'/'MM'/'yyyy")
<td>@(((DateTime)detalle.fec).ToString("dd'/'MM'/'yyyy"))</td>
@(((DateTime)detalle.fec).ToString(“dd'/'MM'/'yyyy”))
do DateTime.ToString(“dd/MM/yyyy”);我这样做了,它不起作用,问题不在于日期,而在于“-”,我希望它是一个“/”,就像我指定的一样。MM而不是MM-MM代表分钟而不是月。可能的重复是完全错误的:“例如,“MM/dd/yyyyHH:MM”格式字符串以固定格式显示日期和时间字符串…格式字符串使用“/”作为固定日期分隔符,而不考虑特定于区域性的设置。“@spender-在某些区域性中是这样。感谢您的快速回答。你是对的。我会给你正确的答案你也可以使用这种格式:dateTime.ToString(@“yyyy\/MM\/dd”)MSDN参考:使用反斜杠转义格式字符串也可以:dateTime.Now.ToString(“dd\\/MM\\/yyyyy”);这个代码比公认的答案(我的意思是添加了CultureInfo)更清晰。它看起来至少比用撇号转义斜杠要好。绝对比用转义字符更容易阅读。我有点震惊,我不知道整个时间,我的日期格式将被覆盖!如果开发人员使用带有一些字母的tostring方法,如M ss等,则您的解决方案将得到错误的结果,例如Datetime.Now.tostring(“yyy/dd/mm/Month”,CultureInfo.InvariantCulture)不会导致2017/01/02/月,但会导致2017/01/02/2onth@OkanSARICA如果您想在日期后面加“/Month”,那么应该在ToString方法后面加。DateTime.Now.ToString(“yyyy/MM/dd”,CultureInfo.InvariantCulture)+“/Month”;