我想将字符串转换为datatime。这是我的代码:
DateTime? dt = null;
dt = DateTime.Parse(postdate[i]);
仅适用于dd / mm / yyyy,不适用于mm / dd / yyyy,因为在我的计算机上,日期格式在控制面板中设置为dd / MM / yyyy。
因此,如果我想使用应用程序总是接受有效的格式mm / dd / yyyy,无论windows日期格式设置如何。如何在c#代码中实现它?
答案 0 :(得分:5)
我认为这应该有效:
DateTime? dt = null;
dt = DateTime.ParseExact(postdate[i], "MM/dd/yyyy", System.Globalization.CultureInfo.CurrentCulture);
答案 1 :(得分:1)
你可以这样做:
IFormatProvider culture = new CultureInfo("en-US", true);
DateTime myDateTime = DateTime.Parse(myDateTimeValue, culture);
不是使用默认文化(基于计算机的区域设置)进行解析,而是使用美国文化进行解析,该文化使用MM / dd / YYYY
答案 2 :(得分:1)
@JDunkerley的回应是正确的,但是:
2位数月份的格式说明符是MM而不是mm。
如果您在使用不同分隔符的文化下运行,则使用CultureInfo.CurrentCulture将无法正确解析包含斜杠separtors的字符串(例如:culture de-DE将需要句点分隔符。
这将有效:
dt = DateTime.ParseExact(postdate[i], "MM/dd/yyyy",
System.Globalization.CultureInfo.InvariantCulture);