当我使用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)
Run Code Online (Sandbox Code Playgroud)
对于dt1,结果很好:
但结果是(错误?)dt2出乎意料:
它看起来像是因为ParseExact系统地添加了这一天,即使我只在格式中指定时间.
我的问题是:我怎样才能用DateTime.ParseExact读取时间?
文件指出:
如果 format 定义了没有日期元素的时间并且解析操作成功,则生成的 DateTime 值的日期为
DateTime.Now.Date。
如果您想要没有日期的时间,您可以使用:
var parsedDate = DateTime.ParseExact(...);
var timeOnly = parsedDate - parsedDate.Date;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
17562 次 |
| 最近记录: |