DateTime.Now在同一台机器中提供不同的格式

时间:2018-05-04 10:53:18

标签: c#

我有一个Windows服务应用程序,我使用DateTime.Now.ToString()获取当前日期和时间,返回' 04-05-2018 05:50:12 '。

但我在示例控制台应用程序中尝试了相同的操作,但它以不同的格式返回日期为“ 5/4/2018 5:51:32 AM

这两台机器都在同一台机器上执行。有人可以告诉我为什么这些应用程序中存在日期格式差异?

1 个答案:

答案 0 :(得分:1)


DateTime.ToString()根据current culture格式化DateTime。正如Documentation

中所写
  

将当前DateTime对象的值转换为其等效值   使用当前格式约定的字符串表示   culture。(重写ValueType.ToString()。)

如果你想要相同的字符串,你应该使用DateTime.ToString(string)重载并提供你想要的确切格式。

  

ToString(String)方法返回a的字符串表示形式   使用格式的特定格式的日期和时间值   当前文化的惯例;有关更多信息,请参阅   CultureInfo.CurrentCulture。

     

format参数应包含单个格式说明符   字符(请参阅标准日期和时间格式字符串)或自定义   格式模式(请参阅自定义日期和时间格式字符串)定义   返回字符串的格式。如果format为null或为空   字符串,使用通用格式说明符,' G&#39 ;.

     

此方法的一些用途包括:

     

获取一个显示当前日期和时间的字符串   文化的短日期和时间格式。为此,您使用“G”   格式说明符。

     

获取仅包含月份和年份的字符串。去做这个,   你使用“MM / yyyy”格式字符串。格式字符串使用   当前文化的日期分隔符。

     

获取包含特定格式的日期和时间的字符串。   例如,“MM / dd / yyyyHH:mm”格式字符串显示日期和   时间字符串采用固定格式,例如“19 // 03 // 2013 18:06"。格式   string使用“/”作为固定日期分隔符,而不管是什么   文化特定的设置。

     

以可用于的精简格式获取日期   序列化日期字符串。例如," yyyyMMdd"格式字符串   显示一个四位数的年份,然后是两位数的月份和一个   没有日期分隔符的两位数日。