我尝试获取DateTime.Now,但我得到的是:
'23 / 05/2016 03:16:51ق.ظ'
我想要
'23 / 05/2016 03:16:51 AM'
或类似的东西
答案 0 :(得分:1)
然后你现在的文化似乎是一个阿拉伯文化。您可以使用overload of DateTime.ToString
:
var enUsCulture = new CultureInfo("en-US");
string result = DateTime.Now.ToString( enUsCulture );
您可以使用CultureInfo.InvariantCulture
传递确切格式的替代方法(以避免/
将替换为您当前的文化日期分隔符):
string result = DateTime.Now.ToString("dd/MM/yyyy hh:mm:ss tt", CultureInfo.InvariantCulture);
InvariantCulture
避免"/" custom format specifier
导致/
被当前文化的日期分隔符替换。
答案 1 :(得分:0)
您可以根据CurrentCulture
的要求创建特定的CultureInfoCultureInfo ci = new CultureInfo(CultureInfo.CurrentCulture.LCID);
ci.DateTimeFormat.AMDesignator = "AM";
ci.DateTimeFormat.PMDesignator = "PM";
ci.DateTimeFormat.LongTimePattern = "HH:mm:ss tt";
string result = DateTime.Now.ToString(ci);
Console.WriteLine(result);
答案 2 :(得分:0)
我认为CultureInfo.InvariantCulture是这里的关键
DateTime now = DateTime.Now;
string result = now.ToString("dd MMM yyyy hh:mm tt", CultureInfo.InvariantCulture);
Console.WriteLine(result);
这应该会给你" 2016年5月23日02:32 PM",您可以使用字符串格式说明符中的其他设置进一步编辑日期和时间。但请保留InvarianCulture,以便收到AP / PM。
对于所有可能的格式和一些示例,请检查这些链接
https://msdn.microsoft.com/en-us/library/8kb3ddd4(v=vs.110).aspx