C#:我如何将当前时间变成字符串?

47 c#

如何将当前的h/m/s AM时间转换为字符串?也许数字形式的日期(01/02/09)到另一个?

P D*_*ddy 77

我想在这些答案中指出一些事情.在日期/时间格式字符串中,'/'将替换为用户的日期分隔符,并且':'将替换为用户的时间分隔符.也就是说,如果我将日期分隔符定义为'.' (在区域和语言选项控制面板小程序中,"intl.cpl"),我的时间分隔符为'?' (那就是假装我疯了)

DateTime.Now.ToString("MM/dd/yyyy h:mm tt")
Run Code Online (Sandbox Code Playgroud)

会回来的

01.05.2009 6?01 PM

在大多数情况下,这是您想要的,因为您想要尊重用户的设置.但是,如果您要求格式是特定的(例如,如果它将被其他人解析掉),那么您需要转义这些特殊字符:

DateTime.Now.ToString("MM\\/dd\\/yyyy h\\:mm tt")
Run Code Online (Sandbox Code Playgroud)

要么

DateTime.Now.ToString(@"MM\/dd\/yyyy h\:mm tt")
Run Code Online (Sandbox Code Playgroud)

现在会回归

01/05/2009 6:01 PM

编辑:

再说一遍,如果你真的想要尊重用户的设置,你应该使用标准的日期/时间格式字符串之一,这样你不仅要尊重用户对分隔符的选择,还要尊重日期和/或时间的一般格式. .

DateTime.Now.ToShortDateString()
DateTime.Now.ToString("d")
Run Code Online (Sandbox Code Playgroud)

两者都将使用标准的美国选项返回"1/5/2009",或者使用标准的英国选项返回"05/01/2009".

DateTime.Now.ToLongDateString()
DateTime.Now.ToString("D")
Run Code Online (Sandbox Code Playgroud)

两者都将在美国地区返回"2009年1月5日星期一"或英国"2009年1月5日".

DateTime.Now.ToShortTimeString()
DateTime.Now.ToString("t");
Run Code Online (Sandbox Code Playgroud)

"6:01 PM"在美国,"18:01"在英国.

DateTime.Now.ToLongTimeString()
DateTime.Now.ToString("T");
Run Code Online (Sandbox Code Playgroud)

"6:01:04 PM"在美国,"18:01:04"在英国.

DateTime.Now.ToString()
DateTime.Now.ToString("G");
Run Code Online (Sandbox Code Playgroud)

"1/5/2009 6:01:04 PM"在美国,"05/01/2009 18:01:04"在英国.

还有许多其他选择.请参阅有关标准日期和时间格式字符串以及自定义日期和时间格式字符串的文档.


pal*_*rse 20

您也可以使用格式字符串.

string time = DateTime.Now.ToString("hh:mm:ss"); // includes leading zeros
string date = DateTime.Now.ToString("dd/MM/yy"); // includes leading zeros
Run Code Online (Sandbox Code Playgroud)

或者一些快捷方式,如果格式适合你

string time = DateTime.Now.ToShortTimeString();
string date = DateTime.Now.ToShortDateString();
Run Code Online (Sandbox Code Playgroud)

要么应该工作.

  • 24小时制时钟使用HH:mm:ss (6认同)

Tom*_*ter 10

DateTime.Now.ToString("h:mm tt")
DateTime.Now.ToString("MM/dd/yyyy")
Run Code Online (Sandbox Code Playgroud)

以下是一些常见的格式字符串


Kar*_*eya 9

在单个字符串中获取系统日期和时间的方法

public static string GetTimeDate()
{
    string DateTime = System.DateTime.Now.ToString("dd-MM-yyyy HH:mm:ss");   
    return DateTime;
} 

sample OUTPUT :-16-03-2015 07:45:15
Run Code Online (Sandbox Code Playgroud)


Mik*_*ott 5

两次访问 DateTime.Now 时要小心,因为调用可能会跨越午夜,并且在极少数情况下您会得到古怪的结果并且让您摸不着头脑。

为安全起见,如果您要多次使用它,您应该首先将 DateTime.Now 分配给一个局部变量:

var now = DateTime.Now;
var time = now.ToString("hh:mm:ss tt");
var date = now.ToString("MM/dd/yy");
Run Code Online (Sandbox Code Playgroud)

请注意,即使在下午,使用小写的“hh”也会显示从 00 到 11 的小时数,而“tt”则按照问题要求显示 AM/PM。如果您想要 24 小时制 00-23,请使用“HH”。