使用ISO8601格式时,如何控制DateTimeOffset的毫秒精度?
问题解答
- 无法通过
ToString("O")实现目标格式:"O"(往返格式)是.NET中固定的ISO 8601扩展格式,它强制保留7位小数的毫秒部分,无法调整小数位数,因此不能直接用它生成仅保留3位毫秒的结果。 - 你找到的自定义格式方案是有效的:
DateTimeOffset.Now.ToString("yyyy'-'MM'-'dd'T'HH':'mm':'ss'.'fffK")确实能输出符合要求的格式,其中fff对应3位毫秒,K对应时区偏移信息。 - 可简化格式字符串写法:格式字符串中的单引号用于转义固定字符,但此处的分隔符(
-、:、T)在格式规则中无需转义,可简化为:
该写法与原代码效果完全一致,更简洁易读。var data = DateTimeOffset.Now.ToString("yyyy-MM-dd'T'HH:mm:ss.fffK");
内容的提问来源于stack exchange,提问作者boule
相关产品推荐
相关产品推荐

