如何以这种格式获取日期和时间?

时间:2011-11-18 15:05:20

标签: .net formatting

请告诉我如何以这种格式获取当前日期和时间:

  

2011年11月18日星期五晚上7:00

8 个答案:

答案 0 :(得分:10)

如果CurrentCultureen-US

DateTime.Now.ToString("f")

否则您可以指定文化:

DateTime.Now.ToString("f", CultureInfo.CreateSpecificCulture("en-US"))

或者您可以使用自定义字符串,这又取决于文化的月/日名称和24小时制。

我不建议使用专为机器使用而设计的InvariantCulture

答案 1 :(得分:4)

这应该有效:

string date = someDate.ToString("dddd, MMMM dd, yyyy h:mm tt");

答案 2 :(得分:2)

不确定

string text = DateTime.Now.ToString("dddd, MMMM dd, yyyy h:mm tt",
                                    CultureInfo.InvariantCulture);

请注意,您可能希望使用其中一个standard日期/时间格式字符串,而不是custom这样的字符串。这基本上是一种人类可读的形式,通常应该考虑将要显示给用户的文化。

正如dahlbyk所提到的,InvariantCulture通常用于机器到机器的格式化,就像自定义格式字符串一样,这就是我在这里使用它的原因。如果 供人类消费但你总是想用美国英语,那么你应该指定一种美国文化。您可能仍希望指定自定义格式字符串,而不是使用标准格式字符串,如果您希望稍后在代码中更清楚(或更简单地更改)。但你真的应该来弄清楚这是否意味着人类或机器使用。

答案 3 :(得分:1)

MSDN是你的朋友。这解释了DateTimes的所有格式字符串。

答案 4 :(得分:0)

DateTime.Now.ToString("dddd, MMMM, dd, yyyy h:mm tt");

可以压缩为

DateTime.Now.ToString("F", CultureInfo.CreateSpecificCulture("en-US"));

答案 5 :(得分:0)

 DateTime date1 = new DateTime(2008, 4, 10, 6, 30, 0);
 Console.WriteLine(date1.ToString("F", 
                  CultureInfo.CreateSpecificCulture("en-US")));

应该显示

Thursday, April 10, 2008 6:30:00 AM

答案 6 :(得分:0)

DateTime.Now.ToString("f");

以下是所有ToString()模式的列表。

答案 7 :(得分:0)

String.Format("{0:dddd, MMMM d, yyyy hh:mm tt}", dt);