日期转换
本文关键字:转换 日期 | 更新日期: 2023-09-27 18:28:57
我需要帮助将当前日期转换为"2014年11月4日星期二00:00:00 UTC+0530"日期格式使用C#。
假设我有这样的日期:DateTime dt = DateTime.Now;
现在,我如何将其转换为上述格式。
DateTime.ToString(string)
允许您指定日期的格式。可以使用"自定义日期和时间格式字符串"构造自定义格式。
我想冒险回答你的问题,但无论如何。。
DateTime
没有any
隐式格式。它只有日期和时间值等。这就是为什么它不可能有任何格式。但是它们的string
表示可以有一种格式。格式化DateTime
很容易,只需要使用具有特定区域性的DateTime.ToString()
方法即可。(在您的情况下,看起来InvariantCulture
是一个很好的候选者)
DateTime dt = DateTime.Now;
dt.ToString("ddd MMM d HH:mm:ss 'UTC+0530' yyyy", CultureInfo.InvariantCulture);
返回
Tue Nov 4 14:20:36 UTC+0530 2014
AFAIK,时区缩写没有标准化,这就是为什么除了文本字符串分隔符之外,还有解析它们的方法。此外,由于DateTime
不保留偏移值,您还需要将其解析为文字字符串分隔符
如果您想要+05:30
而不是+0530
,"zzz"
自定义格式说明符将是一个不错的选择,因为它从UTC
获得了+
或-
符号、本地操作系统时区的小时和分钟部分偏移。
根据您的建议,我构建了这个代码
DateTimeOffset localTime = DateTimeOffset.Now;
string.Format("{0:ddd MMM d HH:mm:ss} UTC+{1} {0:yyyy}", localTime, localTime.Offset.ToString("hhmm"));
及其生成正确的格式:"11月4日星期二18:25:48 UTC+0530 2014"