2013-03-15 78 views
0

我在WPF中有一个DateTimePicker。 的dateTimePicker的给我一个欧洲格式将日期时间转换为美国不好

在我的DateTimePicker,我选择“2014年1月2日”(欧洲格式)

我想读的价值,并把它转换与一个shortDateString美国文化。

我已经这样做了:

CultureInfo m_UsCulture = new CultureInfo("en-us"); 
string str = m_dDate.Date.ToShortDateString().ToString(m_UsCulture); 

str变量将:的 “2014年1月2日” 改为 “2014年2月1日”

的ShortDateString似乎是好的,但不是“ToString(m_UsCulture);”。

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

感谢很多:)

+1

它在单行中的价值是什么? – Oded 2013-03-15 15:16:18

+0

一旦拥有它,你将如何处理该字符串? – 2013-03-15 15:16:19

+2

你正在将一个字符串转换为一个字符串 - “ToShortDateString()。ToString(m_UsCulture)'那么它如何将文化应用到日期? – Lloyd 2013-03-15 15:17:26

回答

4

的dateTimePicker的给我一个欧洲格式

,如果你使用的Text属性,只能是真实的。我建议你使用SelectedDate属性,它会给你一个DateTime?而不是 - DateTime不是格式...这取决于你的格式,但是你想要的。

然后将它们转换为美国短日期格式,你应该使用ToString并指定d(简称日期格式)文化在同一时间:

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

您当前的代码是使用DateTime.ToShortDateString()这将使用当前的文化,然后然后调用ToString对生成的字符串这将不关心你通过它的文化。

+0

OP使用date:'m_dDate.Date',但由于某种原因转换为带有ToShortDateString的字符串。 – Oded 2013-03-15 15:20:29

+1

@Oded:老实说,现在还不清楚'm_dDate'在这里。但是现在我的答案显示了如何将'DateTime'转换为特定文化中的短日期字符串。 – 2013-03-15 15:21:54

+0

正在评论最初的版本。顺便说一句,不是我的倒退。 – Oded 2013-03-15 15:22:59

4

ToShortDateString使用当前的文化,所以你不能用这种方法指定你的美国文化(除非你改变当前的文化)。我会用ToString代替,而美国特定的短日期模式:

CultureInfo usCulture = CultureInfo.GetCultureInfo("en-us"); 
var stringRep = yourDate.ToString(
    usCulture.DateTimeFormat.ShortDatePattern, 
    usCulture); 
相关问题