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

2023-11-23

当我使用 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 为假
  • 等于 1 为 True

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

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

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

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


文档 states:

如果 format 定义了一个没有日期元素的时间并且解析操作成功,则生成的 DateTime 值的日期为DateTime.Now.Date.

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

var parsedDate = DateTime.ParseExact(...);
var timeOnly = parsedDate - parsedDate.Date;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 DateTime.ParseExact 仅获取时间(不包含日期) 的相关文章

  • VB.NET 中字节数组的数组

    我需要一个数组 数组中的每个项目都是这样的字节数组 但我不知道如何执行以下操作 Dim xx as array xx 0 as byte H12 HFF xx 1 as byte H45 HFE 您可以像这样创建嵌套或 锯齿状 字节数组 D
  • 在 TaskCompletionSource.Task(已调用 .SetResult)上调用ContinueWith 方法是否安全?

    使用是否安全ContinueWith 上的方法TaskCompletionSource Task if the TaskCompletionSource SetResult 已经被调用了 这个基本代码有望有助于解决这个问题 this was
  • 强制 Excel 将多张纸作为单个作业打印

    在某些 Excel 2003 工作簿中 当我尝试print如果有多个工作表 Excel 将这些工作表视为单独的打印作业 这让我一直在编写的 Excel 自动化应用程序感到困惑 因为它会导致 Adob e PDF Printer 停止并询问用
  • .NET 进程分配的内存何时释放回 Windows

    设置 NET 在启动时以及在收集后尝试满足分配请求时 分段为每一代的堆 0 1 2 LOH 分配内存 以获得连续的内存块 为每个堆分配的内存可能会随着应用程序 预热 而趋于平稳 但第 2 代和大型对象堆可能除外 在垃圾收集期间 每个堆 0
  • 外部组件中的控制器上的 404

    我在解决 Asp Net MVC 4 项目中的 404 响应时遇到问题 它是在 VS2012 中构建的 目标版本为 4 5 我已将预编译的视图和控制器内置到独立的 DLL 中 我能够动态加载 DLL 并从我的核心项目中检查它们 甚至调用它们
  • Facebook Graph API“/userid/feed”返回空白

    我正在使用 Facebook C SDK 但似乎无法使用 Graph API 获取反馈数据 我已从用户那里获得了以下扩展权限 范围 离线访问 publish stream publish checkins create event read
  • 当“多次安装 MSBuild”时,Dotnet 项目转换尝试转换失败

    try convert w Test csproj target framework netstandard2 0 结果是 Multiple installs of MSBuild detected please select one In
  • 正则表达式基于组的不同替换?

    所以我对正则表达式比较陌生 并且做了一些练习 我正在玩一个简单的 混淆器 它只是寻找 dot or dot or at or at 不区分大小写 并且在匹配项之前或之后有或没有任意数量的空格 这是针对通常情况的 someemail AT d
  • .NET ReaderWriterLockSlim 问题

    有很多关于 ReaderWriterLockSlim 类的文章 它允许多次读取和一次写入 所有这些 至少我发现的 都告诉了如何使用它 而没有太多解释它为什么以及如何工作 标准代码示例是 lock EnterUpgradeableReadLo
  • 创建序列的幂集

    我正在尝试创建一个程序 作为创建序列 字符串或数字的可能组合的基础 这是某种加密 解密程序 我正在使用 Visual Studio 2013 和 C 我想做的是从序列中生成幂集 但我有点困惑并且无法继续进行 这是代码 public stat
  • 为 ASP.NET MVC 实现自定义登录

    我是 ASP NET MVC 的新手 需要一些关于如何实现以下内容的建议 该站点是一个使用率很高的站点 内部 内联网 约有 200 个用户 我们使用表单身份验证来访问 SQL Server DB 不是 Windows 集成 有些操作受到保护
  • IIS7 或 .Net 301 从 1 个域重定向到另一个域

    我有 2 个域 对于这个问题 我将它们称为www old com 和www new com 两个 URL 都指向同一个 IIS7 站点实例 我需要对其进行设置 以便当有人访问 www old com 时 他们会得到 301 重定向到 www
  • 通过 USB 将原始文本发送到打印机

    我正在尝试将 ZPL 命令发送到 Zebra ZT230 打印机 打印机和驱动程序已安装 打印机端口为 USB003 PC 通过 Zebra 打印机设置实用程序或 ZebraDesign 与打印机完美通信 我尝试了以下代码 Private
  • 如何使 PLINQ 在 .NET 4.0 beta 2 中产生更多并发线程?

    在以前版本的并行扩展中 您可以设置线程数 enumerable AsParallel numberOfThreads 但现在这种超载不再可用 现在该怎么做呢 在新版本中 您可以使用扩展方法 WithDegreeOfParallelism i
  • Spring.Net可以起到PostSharp的作用吗?

    几个月前 我发现了 PostSharp 有一段时间 它非常棒 但随后法律部门回复说他们不喜欢旧版本的许可证 然后部门告诉我2 0的价格高得令人无法接受 对于我们需要的座位数量 我非常失望 但并不沮丧 我想 这不可能是唯一的这样的框架 我一直
  • 设置 Cursor.Position“half”-有效(从一台显示器到另一台)

    我有两个显示器 其中一个是非主显示器 number 1 设置为主要的 number 2 左上角像这样 我再说一遍 number 2是主监视器 这是代码 Cursor Position new Point 500 500 发生的情况是 当光标
  • 我可以安全地删除临时 ASP.Net 文件夹的内容吗?

    每当我运行时 我的应用程序都可以正常工作VS 2010 当我将其上传到服务器并运行时IIS它给编译器错误 CS0433 c Windows Microsoft NET Framework v4 0 30319 Temporary ASP N
  • 从 SQL XML 列中的元素获取属性名称

    对于此 xml 在 SQL 2005 XML 列中
  • 在 C# 中解析 JS Date.toIsoString

    我需要将 JS 日期存储为 ISO 8601 日期 我目前正在从格式为 2019 06 22T00 00 00 000Z 的表单中获取日期 正如 JS 的 toIsoString 方法所期望的那样 当这个日期传递到我的 API 控制器时 我
  • 如何防止 Lotus Notes 用户转发或复制通过 System.Net.Mail 发送的邮件?

    我想使用 SMTP 客户端 uiing microsft net 以 C 作为编程语言发送电子邮件 但是对于通过SMTP客户端发送的电子邮件 我们是否可以添加 禁止转发 或 禁止复制 等安全功能 我不希望电子邮件的收件人转发或复制电子邮件的

随机推荐