C#:如何将当前时间转换为字符串?

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

asked 2020-06-30T01:14:12Z
6个解决方案
76 votes

我只想指出这些答案中的某些内容。 在日期/时间格式字符串中,“ /”将替换为用户的日期分隔符,而“:”将替换为用户的时间分隔符。 也就是说,如果我将日期分隔符定义为“。”。 (在“区域和语言选项”控制面板小程序“ intl.cpl”中),时间分隔符为“?” (假装我疯了那样),然后

DateTime.Now.ToString("MM/dd/yyyy h:mm tt")

会回来

01.05.2009 6?01 PM

在大多数情况下,这就是您想要的,因为您希望遵守用户的设置。 但是,如果您要求格式是特定的(例如,如果要由其他人解析出来),那么您需要转义这些特殊字符:

DateTime.Now.ToString("MM\\/dd\\/yyyy h\\:mm tt")

要么

DateTime.Now.ToString(@"MM\/dd\/yyyy h\:mm tt")

现在将返回

01/05/2009 6:01 PM

编辑:

再说一次,如果您确实要遵守用户的设置,则应该使用标准的日期/时间格式字符串之一,这样不仅要尊重用户对分隔符的选择,还要遵守日期和/或时间的一般格式。 。

DateTime.Now.ToShortDateString()
DateTime.Now.ToString("d")

例如,两者都将使用标准美国选项返回“ 1/5/2009”,或者使用标准英国选项返回“ 05/01/2009”。

DateTime.Now.ToLongDateString()
DateTime.Now.ToString("D")

两者都将在美国语言环境中返回“ 2009年1月5日星期一”,在英国则返回“ 2009年1月5日”。

DateTime.Now.ToShortTimeString()
DateTime.Now.ToString("t");

在美国为“ 6:01 PM”,在英国为“ 18:01”。

DateTime.Now.ToLongTimeString()
DateTime.Now.ToString("T");

美国为“ 6:01:04 PM”,英国为“ 18:01:04”。

DateTime.Now.ToString()
DateTime.Now.ToString("G");

美国为“ 1/5/2009 6:01:04 PM”,英国为“ 05/01/2009 18:01:04”。

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

P Daddy answered 2020-06-30T01:15:20Z
20 votes

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

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

或一些快捷方式(如果格式适合您)

string time = DateTime.Now.ToShortTimeString();
string date = DateTime.Now.ToShortDateString();

两者都应该起作用。

palehorse answered 2020-06-30T01:15:49Z
10 votes
DateTime.Now.ToString("h:mm tt")
DateTime.Now.ToString("MM/dd/yyyy")

这是一些常见的格式字符串

Tom Ritter answered 2020-06-30T01:16:09Z
9 votes

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

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
Kartiikeya answered 2020-06-30T01:16:29Z
4 votes

访问DateTime时请小心。

为了安全起见,如果要多次使用DateTime.Now,请首先将其分配给本地变量:

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

请注意,根据要求,使用小写字母“ hh”即使在下午也显示00-11的小时数,使用“ tt”显示AM / PM。 如果要24小时制00-23,请使用“ HH”。

Mike Scott answered 2020-06-30T01:16:59Z
2 votes
string t = DateTime.Now.ToString("h/m/s tt");
string t2 = DateTime.Now.ToString("hh:mm:ss tt");
string d = DateTime.Now.ToString("MM/dd/yy");

[HTTP://MSDN.Microsoft.com/恩-US/library/8恐怖3顶顶顶4.aspx]

Joel Coehoorn answered 2020-06-30T01:17:19Z
translate from https://stackoverflow.com:/questions/414733/c-how-would-i-get-the-current-time-into-a-string