C#中的DateTime到字符串格式

时间:2014-09-17 10:46:11

标签: c# .net datetime datetime-format

我在将DateTime变量转换为字符串时遇到了一些麻烦。 我想使用12小时制来显示时间,包括AM/PM

使用以下代码:

string timeStr = PaymentDate.ToString("hh:mm tt");

我会得到"11:39",但PM/AM没有显示。有什么猜测吗?

2 个答案:

答案 0 :(得分:4)

即使您当前的文化不使用它,您也可以使用CultureInfo.InvariantCulture强制AM / PM指示符:

PaymentDate.ToString("hh:mm tt", CultureInfo.InvariantCulture);

你可以查看当前文化的指定者是什么(我的“de-DE”中也是""):

DateTimeFormatInfo.CurrentInfo.AMDesignator  // and .PMDesignator

答案 1 :(得分:3)

DateTime.ToString(string) method默认使用您的CurrentCulture

我认为您的DateTimeFormat' s AMDesignator是空字符串。这就是为什么您无法使用CurrentCulture打印它。

作为替代方案,您可以使用InvariantCulture"AM"作为AMDesignator)作为DateTime.ToString overload中的第二个参数。

string timeStr = PaymentDate.ToString("hh:mm tt", CultureInfo.InvariantCulture);

Inspector Gadget模式启用:您的个人资料页面显示您来自Ireland,我认为您的CurrentCultureen-IE。它的AMDesignator属性值为空字符串。

CultureInfo.GetCultureInfo("en-IE").DateTimeFormat.AMDesignator;
// Prints empty string