c# - 将带有 utc-datetime 的字符串转换为 datetime-Ojbect
问题描述
首先,我是 C# 新手。
我必须转换一个string
喜欢
"Fri, 30 Jul 2021 11:57:58 (UTC)"
变成一个DateTime
. 我尝试了几种格式字符串(如"ddd, dd MMM yyyy HH:mm:ss"
, "r"
, "R"
)。但我总是收到错误消息
字符串未被识别为有效的日期时间。
这是我的最后一个代码:
CultureInfo enUS = new CultureInfo("en-US");
string timeStampFormat = "ddd, dd MMM yyyy HH:mm:ss";
DateTime myDateTime;
myDateTime = DateTime.ParseExact(
stringToFormat,
timeStampFormat,
enUS,
DateTimeStyles.AssumeUniversal);
谢谢你的支持。
最好的问候安德烈亚斯##标题##
解决方案
它(UTC)
是导致字符串不被识别为时间戳的原因。您可以(UTC)
通过删除它来解决这个问题,我在这里提供了一种方法来完成此操作。
string stringToFormat = "Fri, 30 Jul 2021 11:57:58 (UTC)";
string[] SubString = stringToFormat.Split('(');
stringToFormat = SubString[0].Trim();
string timeStampFormat = "ddd, dd MMM yyyy HH:mm:ss";
DateTime mydateTime = DateTime.ParseExact(stringToFormat, timeStampFormat, CultureInfo.GetCultureInfo("en-US"), DateTimeStyles.AssumeUniversal);
或者将 替换为(UTC)
与 UTC 的偏移量,在这种情况下为 0,并添加(z)
到 timeStampFormat。
string stringToFormat = "Fri, 30 Jul 2021 11:57:58 (UTC)";
stringToFormat = stringToFormat.Replace("(UTC)", "(-0)");
string timeStampFormat = "ddd, dd MMM yyyy HH:mm:ss (z)";
DateTime mydateTime = DateTime.ParseExact(stringToFormat, timeStampFormat, CultureInfo.GetCultureInfo("en-US"), DateTimeStyles.AssumeUniversal);
https://docs.microsoft.com/en-us/dotnet/standard/base-types/custom-date-and-time-format-strings
推荐阅读
- swift - Swift 卡片 UI 设计
- reactjs - 在不同的路线上运行 SPA
- c# - 我无法使用 Visual Studio 2019 在 C# 中转换为双精度
- apache - 多线程如何影响 http keep-alive 连接?
- javascript - 如何使用 JS 在不同的 HTML 页面之间导航
- javascript - Discord.js 嵌入图像不起作用。(无法将“{'url': 'https://cdn.nekos.life/boobs/boobs105.gif'}”解释为字符串。)
- python-3.x - 如何完全删除 wxPython 中的按钮?
- html - 伪类 'nth-child()' 不适用于 ':hover"
- nim-lang - 如何通过索引从 Nim 中的 OrderedTable 获取元素?
- r - 从 R 中的现有数据框构建新数据框