日期转换

时间:2014-11-04 12:15:07

标签: c#

我需要帮助才能将当前日期转换为" Tue Nov 4 00:00:00 UTC + 0530 2014"日期格式 使用C#。

说我的日期如下:DateTime dt = DateTime.Now;

现在,我该如何以上述格式转换它。

3 个答案:

答案 0 :(得分:1)

DateTime.ToString(string)可让您指定日期格式。您可以使用Custom Date and Time Format Strings构建自定义格式。

答案 1 :(得分:0)

我觉得冒风险回答你的问题,但无论如何......

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不保留offset值,您还需要将其解析为文字字符串分隔符

如果您希望+05:30而不是+0530,那么"zzz" custom format specifier将是一个不错的选择,因为它会获得+-个符号,小时和分钟部分偏离本地操作系统的时区UTC

答案 2 :(得分:-1)

根据您的建议,我构建了此代码

DateTimeOffset localTime = DateTimeOffset.Now;
string.Format("{0:ddd MMM d HH:mm:ss} UTC+{1} {0:yyyy}", localTime, localTime.Offset.ToString("hhmm"));

及其生成正确的格式: “Tue Nov 4 18:25:48 UTC + 0530 2014”