如何获取DateTime.Now“AM”而不是“ق.ظ”

时间:2016-05-23 11:59:23

标签: c# datetime

我尝试获取DateTime.Now,但我得到的是:

  

'23 / 05/2016 03:16:51ق.ظ'

我想要

  

'23 / 05/2016 03:16:51 AM'

或类似的东西

3 个答案:

答案 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

的要求创建特定的CultureInfo
CultureInfo 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

http://www.dotnetperls.com/datetime-format