我需要转换DateTime
不同文化格式中的值,无论系统中设置如何。
没有选择任何特定的时区进行转换,任何区域性格式都使用转换日期时间值。
DateTimeFormatInfo ukDtfi = new CultureInfo(CultureInfo.CurrentCulture.ToString(), false).DateTimeFormat;
StartingDate = Convert.ToDateTime(System.Web.HttpContext.Current.Session["StartDate"].ToString(), ukDtfi);
我正在使用上面的代码,但它不能正常工作。
目前我设置ar-SA
我的系统中的文化。
让我先澄清一些主题..
A DateTime
实例没有any时区信息和文化设置。它just有日期和时间值。文化设置概念only当你得到它时适用textual(字符串)表示。
自从你使用ar-SA
文化,您的字符串格式不是标准的日期和时间格式that文化。
var dt = DateTime.Parse("31/1/2016 12:00 AM", CultureInfo.GetCultureInfo("ar-SA"));
// Throws FormatException
And you can't解析这个字符串ar-SA
文化,因为这种文化使用ص
as a AMDesignator因为它使用UmAlQuraCalendar而不是一个GregorianCalendar
.
您可以使用InvariantCulture(它使用AM
as a AMDesignator
和用途GregorianCalendar
) 代替DateTime.ParseExact方法准确指定其格式。
string s = "31/1/2016 12:00 AM";
DateTime dt = DateTime.ParseExact(s, "dd/M/yyyy hh:mm tt",
CultureInfo.InvariantCulture);
在你的情况下;
StartingDate = DateTime.ParseExact(System.Web.HttpContext.Current.Session["StartDate"].ToString(),
"dd/M/yyyy hh:mm tt",
CultureInfo.InvariantCulture);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)