繁体   English   中英

C# - 日期/时间格式

[英]C# - Date/Time Formatting

使用C#,我试图将日期格式化为以下字符串格式:YYYYMMDD_HHMM.xlsx

这是我的代码:

DateTime.Today.AddDays(0).ToString("yyyymmdd") + "_" + DateTime.Today.AddDays(0).ToString("hhmm")

这是我的输出:

20130027_1200.xlsx

月份不正确,时间也不正确。

你使用mm ,这是几分钟,而不是几个月 - 而你正在尝试使用DateTime.Today打印时间 ,它总是在一天开始时返回午夜。

目前尚不清楚你为什么要加0天。 我用的是:

DateTime now = DateTime.Now;
string name = now.ToString("yyyyMMdd'_'HHmm'.xlsx'");

'引用_不是绝对必要的,但我个人觉得最简单的方法就是引用一些不是格式说明符的方法。)

要么:

DateTime now = DateTime.Now;
string name = string.Format("{0:yyyyMMdd}_{0:HHmm}.xlsx", now);

注意使用HH而不是hh来获得24小时制而不是12小时制。

另外,根据您的要求,考虑使用UtcNow而不是Now 请注意,围绕夏令时转换,时钟将返回或转发,因此您最终可能会出现重复的文件名。

还要注意我的代码中我是如何使用DateTime.Now 一次 - 使用原始代码,您发现两次当前日期,这可能会在每次调用时给出不同的结果。

最后,您可能还希望在格式化日期/时间时指定CultureInfo.InvariantCulture - 否则,如果当前文化是默认情况下不使用公历的文化,则可能无法获得您期望的结果。

  1. DateTime.Today返回DateTime其中所有与时间相关的属性都设置为0.请改用DateTime.Now

    适当的价值

    设置为今天日期的对象,时间组件设置为00:00:00。

    来自DateTime.Today属性

  2. 使用您的格式的MM来获得月份。 mm返回分钟。 您可以检查MSDN上的所有格式说明符: 自定义日期和时间格式字符串

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM