gpt4 book ai didi

c# - 将 Stack Overflow 中的非标准日期字符串解析为 .NET DateTime

转载 作者:太空宇宙 更新时间:2023-11-03 18:49:33 24 4
gpt4 key购买 nike

我正在为 Stack Overflow 编写一个屏幕抓取程序。我现在正在编写的代码采用 HTML 并将所有信息放入模型对象中。在解析答案中的信息时,我遇到了一些麻烦。

问题在于 StackOverflow 用于描述绝对时间的日期格式。 DateTime.Parse对他们不起作用。我试过玩弄 DateTime.ParseExact但我没有成功。都抛出 FormatException

这是一些背景:

如果您查看源 HTML 寻找答案,您会得到:

<div id="answer-{id}" class="answer">
<!-- ... -->
answered <span title="2009-06-18 13:21:16Z UTC" class="relativetime">Jun 18 at 13:21</span>
<!-- ... -->
</div>

请注意,绝对时间存储在跨度的标题属性中。我用过 HTML Agility Pack从 CodePlex 访问元素,并提取属性的值。

现在我想知道如何将 "2009-06-18 13:21:16Z UTC" 放入 .NET DateTime 中对象。

我希望能够在没有正则表达式等的情况下做到这一点,但由于整个项目是 hackish 和不稳定的,我真的不介意!

最后,由于这些原因我无法使用数据转储:

  1. 我不会使用 BitTorrent。曾经。
  2. 如果可以的话,这些文件对我的网络连接来说太大了。
  3. 有点过时了。
  4. 没那么有趣!

最佳答案

"Z""UTC" 在同一个 DateTime 字符串中似乎是多余的。

如果您从字符串中删除 "UTC"Parse 会起作用:

System.DateTime.Parse("2009-06-18 13:21:16Z")
{18.06.2009 15:21:16}
Date: {18.06.2009 00:00:00}
Day: 18
DayOfWeek: Thursday
DayOfYear: 169
Hour: 15
Kind: Local
Millisecond: 0
Minute: 21
Month: 6
Second: 16
Ticks: 633809352760000000
TimeOfDay: {15:21:16}
Year: 2009

关于c# - 将 Stack Overflow 中的非标准日期字符串解析为 .NET DateTime,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1282069/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com