Jee*_*att 3 c# culture datetime
我需要以DateTime不同的文化格式转换值,无论系统中设置什么。
没有选择任何特定的时区进行转换,任何区域性格式都使用转换日期时间值。
DateTimeFormatInfo ukDtfi = new CultureInfo(CultureInfo.CurrentCulture.ToString(), false).DateTimeFormat;
StartingDate = Convert.ToDateTime(System.Web.HttpContext.Current.Session["StartDate"].ToString(), ukDtfi);
Run Code Online (Sandbox Code Playgroud)
我正在使用上面的代码,但它无法正常工作。目前我ar-SA在我的系统中设置了文化。
让我先澄清一些主题..
\n\n实例DateTime没有任何时区信息和区域性设置。它只有日期和时间值。文化设置概念仅在您获得文本时才适用字符串)表示形式时才适用。
由于您使用ar-SA区域性,因此您的字符串格式不是该区域性的标准日期和时间格式。
var dt = DateTime.Parse("31/1/2016 12:00 AM", CultureInfo.GetCultureInfo("ar-SA"));\n// Throws FormatException\nRun Code Online (Sandbox Code Playgroud)\n\n并且您无法使用区域性解析此字符串ar-SA,因为此区域性使用\xd8\xb5a AMDesignator,因为它使用UmAlQuraCalendar而不是 a GregorianCalendar。
您可以使用InvariantCulture( 它用作AMaAMDesignator并使用GregorianCalendar) 代替DateTime.ParseExact方法并准确指定其格式。
string s = "31/1/2016 12:00 AM";\nDateTime dt = DateTime.ParseExact(s, "dd/M/yyyy hh:mm tt", \n CultureInfo.InvariantCulture);\nRun Code Online (Sandbox Code Playgroud)\n\n在你的情况下;
\n\nStartingDate = DateTime.ParseExact(System.Web.HttpContext.Current.Session["StartDate"].ToString(), \n "dd/M/yyyy hh:mm tt", \n CultureInfo.InvariantCulture);\nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
13262 次 |
| 最近记录: |