0

我正在尝试根据数据输入格式("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/YYYYMM/dd/YYYY 或反之亦然时,它的转换为MM-dd-YYYY.

示例: 24/08/2013 => 08-24-2013

我想在转换后维持相同的日期分隔符“/”。

等待您的宝贵建议。

4

3 回答 3

0

/将被您的实际文化的日期分隔符取代,这似乎是-. 所以你需要提供CultureInfo.InvariantCulture

string result = dateTime.ToString("MM/dd/YYYY", CultureInfo.InvariantCulture);

请参阅:“/”自定义格式说明符

“/”自定义格式说明符表示日期分隔符,用于区分年、月和日。从当前或指定区域性的 DateTimeFormatInfo.DateSeparator 属性中检索适当的 本地化日期分隔符。

于 2013-09-26T09:06:13.987 回答
0

在日期格式字符串中,/字符不是文字,而是为当前文化配置的日期分隔符。因此,如果您当前的日期分隔符是-,则所有/字符都将替换为-

您可以用单引号将字符括起来以强制将其解释为文字,例如:

"dd'/'MM'/'YYYY"
于 2013-09-26T09:06:33.227 回答
0

我想知道你为什么不使用的parseExact方法DateTime?它会将您的值转换为预期的格式,您仍然可以将其用作DateTime. 在这里阅读更多。

于 2013-09-26T10:03:53.043 回答