我只想指出这些答案中的某些内容。 在日期/时间格式字符串中,“ /”将替换为用户的日期分隔符,而“:”将替换为用户的时间分隔符。 也就是说,如果我将日期分隔符定义为“。”。 (在“区域和语言选项”控制面板小程序“ 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”。
还有许多其他选项。 有关标准日期和时间格式字符串以及自定义日期和时间格式字符串,请参阅文档。