如何获取格式为“2020-11-02T13:20:00Z”的DateTime类型数据
核心逻辑说明
DateTime 属于数值类型,内部仅存储日期时间对应的时间戳数值,本身不携带任何显示格式信息。你在调试、打印时看到的DateTime格式,只是系统调用默认ToString()方法生成的临时字符串,和DateTime对象本身没有绑定关系。
你格式末尾的Z代表的是UTC零时区标识,对应DateTime对象的Kind属性为DateTimeKind.Utc,只要保证这个属性正确,就能在需要的时候输出符合要求的格式字符串。
具体实现方案
- 如果你要获取当前时间对应的UTC DateTime对象:
// 生成的对象Kind为Utc,对应格式中的Z标识 DateTime utcDateTime = DateTime.UtcNow;
- 如果你要把符合目标格式的字符串转回UTC DateTime对象,
ParseExact需要额外指定时区处理规则:
string dateString = "2020-11-02T13:20:00Z"; DateTime utcDateTime = DateTime.ParseExact( dateString, "yyyy-MM-dd'T'HH:mm:ss'Z'", System.Globalization.CultureInfo.InvariantCulture, System.Globalization.DateTimeStyles.AdjustToUniversal | System.Globalization.DateTimeStyles.AssumeUniversal );
- 当你需要输出要求格式的字符串时,再调用
ToString()方法转换即可:
string targetFormatStr = utcDateTime.ToString("yyyy-MM-dd'T'HH:mm:ss'Z'");
内容的提问来源于stack exchange,提问作者User1 Bas
相关产品推荐
相关产品推荐

