我正在尝试按照数据输入格式("dd/MM/YYYY"
,"MM/dd/YYYY"
)转换用户输入的日期。
我正在使用System.Globalization.DateTimeFormatInfo
进行转换,以便日期转换应独立于我的电脑日历:
System.Globalization.DateTimeFormatInfo dateInfodd = new System.Globalization.DateTimeFormatInfo();
dateInfodd.ShortDatePattern = "dd/MM/yyyy";
System.Globalization.DateTimeFormatInfo dateInfomm = new System.Globalization.DateTimeFormatInfo();
dateInfomm.ShortDatePattern = "MM/dd/yyyy";
我的电子日历格式为:MM-dd-YYYY
现在每当我将日期从dd/MM/YYYY
转换为MM/dd/YYYY
或反之时,其转换为MM-dd-YYYY
。
示例:24/08/2013 => 08-24-2013
。
我想在转换后维持相同的日期分隔符“/”。
等待您宝贵的建议。
答案 0 :(得分:0)
/
将替换为您的实际文化的日期分隔符,似乎是-
。所以你需要提供CultureInfo.InvariantCulture
:
string result = dateTime.ToString("MM/dd/YYYY", CultureInfo.InvariantCulture);
请参阅:The "/" Custom Format Specifier
“/”自定义格式说明符表示日期分隔符 用于区分年,月和日。适当的 从中检索本地化日期分隔符 当前或指定的DateTimeFormatInfo.DateSeparator属性 培养强>
答案 1 :(得分:0)
在日期格式字符串中,/
字符不是文字,而是为当前文化配置的date separator。因此,如果您当前的日期分隔符为-
,则所有/
字符都将替换为-
。
您可以使用单引号括起该字符,以强制将其解释为文字,例如:
"dd'/'MM'/'YYYY"
答案 2 :(得分:0)
我想知道您为什么不使用parseExact
的{{1}}方法?它会将您的值转换为预期的格式,您仍然可以将其用作DateTime
。阅读更多here。