如何在C#中格式化像“2008年10月10日上午10点43分CST”的日期时间

时间:2009-01-15 21:56:57

标签: c# datetime formatting

是否有一种干净的方式将DateTime值格式化为“2008年10月10日上午10:43 CST”。

我需要正确的缩写和小写等的“am”(或“pm”)等。

我自己做过,但它很难看,所以我正在寻找不同的看法。

感谢。

4 个答案:

答案 0 :(得分:10)

由于“tt”格式字符串说明符仅输出大写字母,因此您必须自己修改它。此外,DateTimes不存储时区的名称,只存储偏移量。

DateTime dt = DateTime.Now;
string ampm = dt.ToString("tt").ToLower();
string output = string.Format("{0:MMM. d, yyyy h:mm}{1}", dt, ampm);

答案 1 :(得分:3)

DateTimeObject.ToString("MMM. dd, yyyy hh:mmtt");

不确定CST。

如果您想要更多组合,请参阅此链接:

http://www.geekzilla.co.uk/View00FF7904-B510-468C-A2C8-F859AA20581F.htm

答案 2 :(得分:1)

假设您的服务器配置为CST:

string format = dateTime.ToString("mmm. dd, YYYY HH:MM tt ")
    .Replace(" AM ", "am")
    .Replace(" PM ", "pm") +
    " CST";

答案 3 :(得分:0)

这会有用吗?

myDateTime.ToString("MMM. d, yyyy hh:mmtt \C\S\T");