C# 不同区域性信息之间的日期时间转换
我想在国家之间创建不同的转换,我正在使用c#。 我正在尝试将一个日期时间转换为另一个日期时间,格式为dd mmm yyyyC# 不同区域性信息之间的日期时间转换,c#,date,datetime,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
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.
它给出了一个错误:字符串未被识别为有效的日期时间。
请注意。您正在使用给定的日期格式解析myDate的字符串值,请使用“myDate”(“dd-MMM-yyy h:mm:ss-tt”)将日期转换为字符串格式。1。您的字符串应该包含
AM
或PM
,而不是a.m
或p.m
2.您当前的
日期字符串->2013年1月12日17:00:00 a.m.
是错误的,因为它包含17小时的a.m
。它应该是->2013年1月12日17:00 PM
3.您可以使用
System.Globalization.CultureInfo.InvariantCulture
作为CutureInfo
来处理不同的文化
4.如果您的月份是3个字母的单词,如一月、二月、十二月等,您可以使用
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);
myDate.ToString()的值是多少?该值在第二行注释//mydate:12/01/2013 17:00:00 a.m.您只需在两种情况下提供格式1。将日期转换为字符串2时。将字符串转换为日期时间时。这两种情况都不是您想要做的。因为您正在将mydate转换为dateStart,并且两者都是DateTime类型…看起来格式不正确。它给出:字符串未被识别为有效的DateTime。有一个从索引3开始的未知单词。不支持dd mmm yyyy格式?(如2013年12月1日)?@user2483797:是,它支持我编辑我的答案吗?我问,因为它给出了“dd-MMM-yyy-HH:mm:ss-tt”格式的错误。目的是在2013年12月1日获得答案。@user2483797:现在,如果你的月份是12月,请用
解决方案2
部分检查我编辑的答案。ulgy部分是,对于像法语这样的当前文化,结果将是这个月的法语翻译。嗯,不是英语。