我在WPF中有一个DateTimePicker。 dateTimePicker给我一个欧洲格式
在我的DateTimePicker中,我选择“01/02/2014”(欧洲格式)
我想阅读该值,并将其转换为带有美国文化的shortDateString。
我这样做了:
CultureInfo m_UsCulture = new CultureInfo("en-us");
string str = m_dDate.Date.ToShortDateString().ToString(m_UsCulture);
str变量:“01/02/2014”而不是“2/1/2014”
ShortDateString似乎没问题,但不是“ToString(m_UsCulture);”。
我想在一行中这样做。你有这个错误的想法吗?
非常感谢:)
答案 0 :(得分:4)
dateTimePicker给我一个欧洲格式
只有在使用Text
属性时才会出现这种情况。我建议您使用SelectedDate
属性,它会为您提供DateTime?
- 而DateTime
不会拥有格式...这取决于你可以随意格式化它。
然后,要将它们转换为美国短日期格式,您应该使用ToString
并同时指定d
(对于短日期格式)和文化:< / p>
string str = m_dDate.Date.ToString("d", m_UsCulture);
您当前的代码正在使用DateTime.ToShortDateString()
,这将使用当前的文化,然后在结果字符串上调用ToString
关心你传递的文化。
答案 1 :(得分:4)
ToShortDateString
使用当前文化,因此您无法使用此方法指定您的美国文化(除非您更改当前文化)。我会使用ToString
代替美国特定的短日期模式:
CultureInfo usCulture = CultureInfo.GetCultureInfo("en-us");
var stringRep = yourDate.ToString(
usCulture.DateTimeFormat.ShortDatePattern,
usCulture);