我需要帮助才能将当前日期转换为" Tue Nov 4 00:00:00 UTC + 0530 2014"日期格式 使用C#。
说我的日期如下:DateTime dt = DateTime.Now;
现在,我该如何以上述格式转换它。
答案 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”