转换日期时间到美国是不好的

本文关键字:美国 日期 时间 转换 | 更新日期: 2023-09-27 18:04:10

我在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);