You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将DateTime.Now转换为2018-04-07T00:00:00Z格式?

解决DateTime转换为ISO 8601 UTC格式的问题

嗨,我来帮你搞定这个时间格式转换的需求!你想要的2018-04-07T00:00:00Z是标准的ISO 8601 UTC时间格式,这里给你两种最常用的正确实现方式:

方法一:直接用DateTime.ToString指定格式(最简洁)

因为目标格式带Z代表UTC时间,所以优先使用DateTime.UtcNow获取UTC时间,再通过格式字符串输出:

// 直接生成目标格式的字符串(无引号)
string formattedDate = DateTime.UtcNow.ToString("yyyy-MM-ddTHH:mm:ssZ");

如果你的源时间是本地时间(DateTime.Now),需要先转成UTC再格式化:

string formattedDate = DateTime.Now.ToUniversalTime().ToString("yyyy-MM-ddTHH:mm:ssZ");

方法二:用Json.NET序列化(适合序列化场景)

你当前用的JsonConvert.SerializeObject其实也能实现,但需要调整序列化设置,确保输出UTC格式且符合ISO标准:

var jsonSettings = new JsonSerializerSettings
{
    DateFormatHandling = DateFormatHandling.IsoDateFormat,
    DateTimeZoneHandling = DateTimeZoneHandling.Utc // 强制转UTC
};
// 序列化后会带双引号,如果需要去掉可以额外处理
string date = JsonConvert.SerializeObject(DateTime.Now, jsonSettings);

这种方式适合你本来就在做JSON序列化的场景,单独转格式的话方法一更高效。

小提示

  • Z是ISO 8601里的“零时区标记”,对应UTC时间,所以一定要确保你的时间是UTC时区的,否则格式正确但时间会有偏差哦。
  • 格式字符串里的HH代表24小时制,如果你需要12小时制可以换成hh,但通常这种标准格式用24小时制更规范。

内容的提问来源于stack exchange,提问作者Ali Shawky

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 03:40:08