gpt4 book ai didi

.net - 使用 DateTime.ParseExact 仅获取时间(不包含日期)

转载 作者:行者123 更新时间:2023-12-03 03:17:33 24 4
gpt4 key购买 nike

当我使用 DateTime.ParseExact 时,我得到了意想不到的结果。这是我的测试代码:

Dim MinVal As DateTime = #12:00:01 AM#
Dim MaxVal As DateTime = #11:59:59 PM#
Dim TooBig1, Equal1 As Boolean
Dim TooBig2, Equal2 As Boolean

Dim dt1 As DateTime = #12:00:01 AM#
Dim dt2 As DateTime = DateTime.ParseExact("12:00:01 AM", "hh:mm:ss tt", Globalization.DateTimeFormatInfo.InvariantInfo)

TooBig1 = (dt1.CompareTo(MaxVal) > 0)
Equal1 = (dt1.CompareTo(MinVal) = 0)

TooBig2 = (dt2.CompareTo(MaxVal) > 0)
Equal2 = (dt2.CompareTo(MinVal) = 0)

dt1 的结果很好:

  • 它在调试器中显示为 #12:00:01 AM#(不带日期)
  • TooBig1 为假
  • Equal1 为 True

但结果对于 dt2 来说是意外的(错误?):

  • 它在调试器中显示为 #9/30/2011 12:00:01 AM#
  • TooBig2 是正确的
  • Equal2 为假

看起来这是因为尽管我只在格式中指定了时间,但 ParseExact 系统地添加了日期。

我的问题是:如何使用 DateTime.ParseExact 读取时间?

最佳答案

Documentation状态:

If format defines a time with no date element and the parse operation succeeds, the resulting DateTime value has a date of DateTime.Now.Date.

如果您想要一个没有日期的时间,您可以使用:

var parsedDate = DateTime.ParseExact(...);
var timeOnly = parsedDate - parsedDate.Date;

关于.net - 使用 DateTime.ParseExact 仅获取时间(不包含日期),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7616261/

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