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

C#中当前UTC时间转微秒格式及指定格式输出异常问题

问题1:如何在C#中将当前UTC时间转换为微秒格式?

在C#里,要获取UTC时间的微秒表示,可通过DateTime.UtcNow的ticks属性计算:1个tick等于100纳秒,因此微秒数为ticks / 10。如果需要输出带微秒的时间字符串,用自定义格式字符串即可:

// 获取微秒数值
long utcMicroseconds = DateTime.UtcNow.Ticks / 10;

// 格式化为带微秒的UTC时间字符串
string utcMicrosecondStr = DateTime.UtcNow.ToString("yyyy-MM-ddTHH:mm:ss.ffffffZ");

注意:.NET Framework中DateTime.UtcNow的精度受系统时钟限制,.NET Core/.NET 5+版本的精度更高。

问题2:UTC时间格式化为yyyy-MM-ddTHH:mm:ss.fffZ格式

你的代码存在以下问题:

  • 毫秒的格式符是fff,不是sss——ss代表秒数,sss会被解析为“秒+两个s字符”,这就是输出出现36:36Z的原因。
  • 多余的Convert.ToDateTime(DateTime.UtcNow)完全没必要,DateTime.UtcNow本身就是DateTime类型。
  • 若需24小时制时间,应使用HH而非hh(hh是12小时制,会导致时间显示错误)。

正确代码如下:

string formattedUtcTime = DateTime.UtcNow.ToString("yyyy-MM-ddTHH:mm:ss.fffZ");

输出示例:2024-05-10T09:56:36.456Z

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 05:15:13