不同文化信息之间的DateTime转换

时间:2013-12-02 12:00:35

标签: c# date datetime

我想在国家/地区之间创建不同的转换,我正在使用c#。 我正在尝试将日期时间转换为另一个日期时间,格式为dd-mmm-yyyy。

CultureInfo ci = CultureInfo.CreateSpecificCulture(language.US); //en-us
DateTime dateStart= DateTime.ParseExact(myDate.ToString(),"dd-MMM-yyyy h:mm:ss tt", ci); //mydate: 12/01/2013 17:00:00 a.m.

它给出错误:字符串未被识别为有效的DateTime。 请指教。

2 个答案:

答案 0 :(得分:2)

1。您的字符串应包含AMPM但不包含a.mp.m
2。您当前的Date String -> 12/01/2013 17:00:00 a.m.错误,因为它包含a.m第17小时。应该是 - > 12/01/2013 17:00:00 PM
3。您可以System.Globalization.CultureInfo.InvariantCulture使用CutureInfo来处理不同的Cultures
4。如果你的月份是3个字母的单词,如JAN,FEB,DEC。等,您可以使用MMM MM作为月份自定义格式。 像这样 - > "dd/MMM/yyyy HH:mm:ss tt"

解决方案1: 试试这个:如果你的月份是两位数

String myDate = "11/01/2013 17:00:00 PM";
DateTime dateStart = DateTime.ParseExact(myDate, "dd/MM/yyyy HH:mm:ss tt", System.Globalization.CultureInfo.InvariantCulture);

解决方案2: 试试这个:如果你的月份是三个字母的话

String myDate = "11/DEC/2013 17:00:00 PM";
DateTime dateStart = DateTime.ParseExact(myDate, "dd/MMM/yyyy HH:mm:ss tt", System.Globalization.CultureInfo.InvariantCulture);

答案 1 :(得分:0)

您正在使用给定的日期格式解析myDate的字符串值,使用`myDate。ToString(“dd-MMM-yyyy h:mm:ss tt”)将日期转换为字符串格式。