0

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

我想在一行中做到这一点。你有这个错误的想法吗?

非常感谢 :)

4

2 回答 2

4

ToShortDateString使用当前文化,因此您不能使用此方法指定您的美国文化(除非您更改当前文化)。我会改用ToString美国特有的短日期模式:

CultureInfo usCulture = CultureInfo.GetCultureInfo("en-us");
var stringRep = yourDate.ToString(
    usCulture.DateTimeFormat.ShortDatePattern, 
    usCulture);
于 2013-03-15T15:21:48.087 回答
4

dateTimePicker 给我一个欧洲格式

仅当您使用该Text属性时,这才是正确的。我建议您使用该SelectedDate属性,它会为您提供 aDateTime?代替 - 而 a没有DateTime格式......您可以根据需要对其进行格式化。

然后要将它们转换为美国短日期格式,您应该同时使用ToString并指定d(对于短日期格式)文化:

string str = m_dDate.Date.ToString("d", m_UsCulture);

您当前的代码正在使用DateTime.ToShortDateString()它将使用当前文化,然后调用ToString 结果字符串,它不会关心您传递的文化。

于 2013-03-15T15:18:55.080 回答