我在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);".
我想用一行来写。你知道这个错误的原因吗?
dateTimePicker给我一个欧洲格式
只有在使用Text
属性时才成立。我建议您使用SelectedDate
属性,它将为您提供DateTime?
,而DateTime
没有具有格式…这取决于你的格式,但你想。
然后要将它们转换为美国短日期格式,您应该使用ToString
并同时指定d
(短日期格式)和区域性:
string str = m_dDate.Date.ToString("d", m_UsCulture);
你的当前代码正在使用DateTime.ToShortDateString()
,它将使用当前区域性,并且然后在结果字符串上调用ToString
,它不会关心你传递的区域性。
ToShortDateString
使用当前区域性,因此无法使用此方法指定美国区域性(除非更改当前区域性)。我将使用ToString
,以及美国特定的短日期模式:
CultureInfo usCulture = CultureInfo.GetCultureInfo("en-us");
var stringRep = yourDate.ToString(
usCulture.DateTimeFormat.ShortDatePattern,
usCulture);