我在 C# 中转换日期时间时遇到问题
本文关键字:遇到 问题 时间 日期 转换 我在 | 更新日期: 2023-09-27 18:32:55
我正在尝试根据数据输入格式("dd/MM/YYYY"
,"MM/dd/YYYY"
)转换用户输入的日期。
并且正在使用System.Globalization.DateTimeFormatInfo
进行转换,以便日期转换应独立于我的PC日历:
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
.
我想在转换后使用相同的日期分隔符"/"。
等待您的宝贵建议。
/
将被实际区域性的日期分隔符替换,该分隔符似乎-
。因此,您需要提供CultureInfo.InvariantCulture
:
string result = dateTime.ToString("MM/dd/YYYY", CultureInfo.InvariantCulture);
请参阅:"/"自定义格式说明符
"/"自定义格式说明符表示日期分隔符,它 用于区分年、月和日。适当的 从 当前或指定的日期时间格式信息.日期分隔符属性 文化。
在日期格式字符串中,/
字符不是文字,而是为当前区域性配置的日期分隔符。因此,如果您当前的日期分隔符是 -
,则所有/
字符都将替换为 -
。
您可以用单引号将字符括起来,以强制将其解释为文字,例如:
"dd'/'MM'/'YYYY"
我想知道你为什么不使用DateTime
的parseExact
方法?它会将您的值转换为预期的格式,您仍然可以将其用作DateTime
。在此处阅读更多内容。