我想在国家/地区之间创建不同的转换,我正在使用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。 请指教。
答案 0 :(得分:2)
1。您的字符串应包含AM
或PM
但不包含a.m
或p.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”)将日期转换为字符串格式。