我有一个Windows服务应用程序,我使用DateTime.Now.ToString()获取当前日期和时间,返回' 04-05-2018 05:50:12 '。
但我在示例控制台应用程序中尝试了相同的操作,但它以不同的格式返回日期为“ 5/4/2018 5:51:32 AM ”
这两台机器都在同一台机器上执行。有人可以告诉我为什么这些应用程序中存在日期格式差异?
答案 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"格式字符串 显示一个四位数的年份,然后是两位数的月份和一个 没有日期分隔符的两位数日。