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

如何使用C#的DateTimeOffset.Parse解析2022003023T05:57:44.200Z?

问题分析与解决

核心错误点

  1. 格式字符串不匹配:你用了MMMM格式符,这个是匹配月份英文全称(比如"January")的,但你的时间字符串里对应的是数字("00"),完全不兼容,应该换成MM(匹配两位数字月份)。
  2. 时间字符串本身无效:你的时间字符串2022003023T05:57:44.200Z存在两个致命问题:
    • 月份部分是00,而合法月份范围是1-12,这本身就不是有效的日期。
    • 日期部分长度异常:常规的无分隔符日期格式是yyyyMMdd(8位),但你的字符串里2022003023是9位,明显多了一位数字,结构不符合标准日期时间格式。

修正方案

首先你需要确认正确的时间字符串内容,假设修正后的合法字符串是20220330T23:05:57.200Z(2022年3月30日23点05分57秒200毫秒),对应的解析代码如下:

DateTimeOffset dto = DateTimeOffset.ParseExact(
    "20220330T23:05:57.200Z",
    "yyyyMMdd'T'HH:mm:ss.fff'Z'",
    CultureInfo.InvariantCulture,
    DateTimeStyles.AssumeUniversal);

关键说明

  • 使用MM代替MMMM:确保格式符和字符串中的数字月份匹配。
  • 修正时间字符串:保证月份在1-12之间,且日期部分(yyyyMMdd)是8位,之后紧跟T和时间部分(HH:mm:ss.fff),最后以Z结尾表示UTC时间。
  • 优先用DateTimeOffset.ParseExact:直接返回DateTimeOffset类型,比先解析DateTime再转换更直接。

如果你的原始时间字符串有其他正确结构,只需要对应调整格式字符串即可,但必须保证字符串本身是合法的日期时间值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 15:45:42