0

我想以这种格式显示日期:Saturday, March 9, 2013 at 10:00pm在 c# 中。你能帮我实现吗?

DateTime dateTime = new DateTime();
dateTime.ToString(??) 
4

3 回答 3

2

您想要的格式类似于以下格式字符串

dddd, MMMM d, yyyy 'at' hh:mmtt

现场示例:http ://rextester.com/WUYT65966

示例代码:

var dt = DateTime.Now;
Console.WriteLine(dt.ToString("dddd, MMMM d, yyyy 'at' hh:mmtt"));

输出:

Monday, March 11, 2013 at 08:51AM
于 2013-03-11T15:48:58.320 回答
1

使用此格式字符串。详情请参阅MSDN

string.format("{0:dddd, MMMM d, yyyy} at {0:hh:mmtt}", dateTime);

或相同但用作 DateTime.ToString() 方法的格式字符串:

dateTime.ToString("dddd, MMMM d, yyyy 'at' 0:hh:mmtt");

如果您想根据特定文化格式化结果,您也可以指定 CultureInformation(正如@TimSchmelter 在评论/他的回答中指出的那样)

CultureInfo desiredCultur = CultureInfo.InvariantCulture;
dateTime.ToString("dddd, MMMM d, yyyy 'at' 0:hh:mmtt", desiredCulture);
于 2013-03-11T15:48:13.547 回答
1

这应该适用于任何文化:

DateTime dt = new DateTime(2013, 03, 09, 22, 00, 00);
var toString = string.Format("{0} at {1}{2}", 
    dt.ToString("dddd, MMMM d, yyyy", CultureInfo.InvariantCulture),
    dt.ToString("hh:mm", CultureInfo.InvariantCulture), 
    dt.ToString("tt", CultureInfo.InvariantCulture).ToLower());

演示

输出(即使在没有 AM/PM 指示符的文化中):Saturday, March 9, 2013 at 10:00pm

于 2013-03-11T15:53:12.857 回答