将日期时间与未指定和 UTC 类型进行比较

2024-01-09

我有2个DateTime values:

date1

date2

比较这 2 个日期时,这 2 个日期相等。

if (DateTime.Compare(date1, date2)!=0)
    ...

有人可以解释为什么吗?

对我来说有点奇怪:当将 date1 (未指定类型)转换为 UTC 时,我清楚地看到日期是不同的:

date1.ToUniversalTime() --> {15-07-13 18:45:10} 且 Kind = UTC


有人可以解释我为什么吗?

是的。这是因为DateTime是一种根本上破碎的类型 http://noda-time.blogspot.com/2011/08/what-wrong-with-datetime-anyway.html,国际海事组织。基本上是Kind不用于比较。这样做很可能会破坏旧代码,而且并不总是您想要的。它是为 .NET 1.1 添加的,但并不总是以一种很好的方式添加 - 正如您在比较中看到的那样,它绝对没有以您可能期望的所有方式完全集成。

作为另一个例子,即使对于Kind of Local(这意味着系统本地时区)它在算术中被忽略,这意味着调用AddHours(1)实际上只是增加了本地时间,而不是代表elapsed时间(最终可能与当地时间相同,或者在夏令时转换前后,当地时间晚两个小时)。

我的建议是避免比较DateTime首先是不同种类的价值观。这几乎从来都不是你想做的事。

(当然我也推荐使用野田时间 http://nodatime.org,但情况略有不同。)

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

将日期时间与未指定和 UTC 类型进行比较 的相关文章

  • ASP.NET MVC 中的经典 ASP (C#)

    我有一个应用程序想要 最终 转换为 ASP NET MVC 我想要进行全面的服务升级 到 ASP NET 但想要使用当前的 ASP 内容来运行当前的功能 这样我就可以在对新框架进行增量升级的同时升级小部分 该站点严重依赖于不太成熟的 VB6
  • OpenCv读/写视频色差

    我试图简单地使用 openCV 打开视频 处理帧并将处理后的帧写入新的视频文件 我的问题是 即使我根本不处理帧 只是打开视频 使用 VideoCapture 读取帧并使用 VideoWriter 将它们写入新文件 输出文件看起来比输入更 绿
  • asp.net 文本框文本模式数字,仅允许数字

    我只是想知道 ASP NET 中是否有一种方法只允许文本框中的数字textmode number 当我使用这个时
  • 我的线程图像生成应用程序如何将其数据传输到 GUI?

    Mandelbrot 生成器的缓慢多精度实现 线程化 使用 POSIX 线程 Gtk 图形用户界面 我有点失落了 这是我第一次尝试编写线程程序 我实际上并没有尝试转换它的单线程版本 只是尝试实现基本框架 到目前为止它是如何工作的简要描述 M
  • C++:重写已弃用的虚拟方法时出现弃用警告

    我有一个纯虚拟类 它有一个纯虚拟方法 应该是const 但不幸的是不是 该接口位于库中 并且该类由单独项目中的其他几个类继承 我正在尝试使用这个方法const不会破坏兼容性 至少在一段时间内 但我找不到在非常量方法重载时产生警告的方法 以下
  • JSON 数组到 C# 列表

    如何将这个简单的 JSON 字符串反序列化为 C 中的列表 on4ThnU7 n71YZYVKD CVfSpM2W 10kQotV 这样 List
  • POCO HTTPSClientSession 发送请求时遇到问题 - 证书验证失败

    我正在尝试使用 POCO 库编写一个向服务器发出 HTTPS 请求的程序 出于测试目的 我正在连接到具有自签名证书的服务器 并且我希望允许客户端进行连接 为了允许这种情况发生 我尝试安装InvalidCertificateHandler这是
  • 暂停下载线程

    我正在用 C 编写一个非常简单的批量下载程序 该程序读取要下载的 URL 的 txt 文件 我已经设置了一个全局线程和委托来更新 GUI 按下 开始 按钮即可创建并启动该线程 我想要做的是有一个 暂停 按钮 使我能够暂停下载 直到点击 恢复
  • 访问者和模板化虚拟方法

    在一个典型的实现中Visitor模式 该类必须考虑基类的所有变体 后代 在许多情况下 访问者中的相同方法内容应用于不同的方法 在这种情况下 模板化的虚拟方法是理想的选择 但目前这是不允许的 那么 模板化方法可以用来解析父类的虚方法吗 鉴于
  • 如何从网站下载 .EXE 文件?

    我正在编写一个应用程序 需要从网站下载 exe 文件 我正在使用 Visual Studio Express 2008 我正在使用以下代码 private void button1 Click object sender EventArgs
  • Azure 事件中心 - 按顺序接收事件

    我使用下面的代码从 Azure Event Hub 接收事件 https learn microsoft com en us azure event hubs event hubs dotnet framework getstarted s
  • 如何重置捕获像素的值

    我正在尝试创建一个 C 函数 该函数返回屏幕截图位图中每四个像素的 R G 和 B 值 这是我的代码的一部分 for int ix 4 ix lt 1366 ix ix 4 x x 4 for int iy 3 iy lt 768 iy i
  • C# 中条件编译符号的编译时检查(参见示例)?

    在 C C 中你可以这样做 define IN USE 1 define NOT IN USE 1 define USING system 1 system 1 IN USE 进而 define MY SYSTEM IN USE if US
  • 通过 NHibernate 进行查询,无需 N+1 - 包含示例

    我有一个 N 1 问题 我不知道如何解决它 可以在这个问题的底部找到完全可重复的样本 因此 如果您愿意 请创建数据库 设置 NUnit 测试和所有附带的类 并尝试在本地消除 N 1 这是我遇到的真实问题的匿名版本 众所周知 这段代码对于帮助
  • 尚未处理时调用 Form 的 Invoke 时出现 ObjectDisposeException

    我们得到一个ObjectDisposedException从一个电话到Invoke在尚未处理的表格上 这是一些演示该问题的示例代码 public partial class Form2 Form void Form2 Load object
  • System.Runtime.InteropServices.COMException(0x80040154):[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我在 C 项目中遇到异常 System Runtime InteropServices COMException 0x80040154 检
  • 是否可以有一个 out ParameterExpression?

    我想定义一个 Lambda 表达式out范围 有可能做到吗 下面是我尝试过的 C Net 4 0 控制台应用程序的代码片段 正如您在 procedure25 中看到的 我可以使用 lambda 表达式来定义具有输出参数的委托 但是 当我想使
  • 使用 C# 从 DateTime 获取日期

    愚蠢的问题 给定日期时间中的日期 我知道它是星期二 例如我如何知道它的 tue 2 和 mon 1 等 Thanks 您正在寻找星期几 http msdn microsoft com en us library system datetim
  • 双精度类型二维多维数组的 pinvoke 编组作为 c# 和 c++ 之间的输入和输出

    我有以下我正在尝试解决的双物质类型的 2d 多维数组的 c 和 c pinvoke 编组 我已经查看了以下热门内容以获得我目前拥有的内容使用双精度数组进行 P Invoke 在 C 和 C 之间编组数据 https stackoverflo
  • 是否可以在 C# 中强制接口实现为虚拟?

    我今天遇到了一个问题 试图重写尚未声明为虚拟的接口方法的实现 在这种情况下 我无法更改接口或基本实现 而必须尝试其他方法 但我想知道是否有一种方法可以强制类使用虚拟方法实现接口 Example interface IBuilder

随机推荐

  • 有哪些独立开发人员编程方法? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 我可以在 Clojure 记录中创建可变状态吗?

    我正在考虑使用 Clojure 记录来映射到程序中不断变化的实体 它们是可变的吗 或者您是否需要在记录中使用额外的参考 我对此有点困惑 非常值得一看Rich Hickey 关于身份和状态的精彩视频 http www infoq com pr
  • 返回的日期格式为 mm/dd/yyyy hh:mm:ss AM/PM

    我对 sql 是个新手 我的公司只是让我很投入并说去做 因此 非常感谢任何帮助 我试图以 mm dd yyyy hh mm ss AM PM 的格式获取日期 例如 09 26 2014 11 04 54 AM 的日期 我尝试过使用代码 Se
  • 将此 pdf 保存在 ionic 上的缓存/本地存储中

    哈给大家 我按照本教程使用 pdfmake 生成的 pdf 创建模式视图 http gonehybrid com how to create and display a pdf file in your ionic app http gon
  • PHP 搜索多维数组中的值并获取相应的元素值[重复]

    这个问题在这里已经有答案了 我正在使用 PHP 我有一个多维数组 我需要搜索它以查看 键 的值是否存在 如果存在 则获取 字段 的值 这是我的数组 Array 0 gt Array key gt 31 field gt CONSTRUCTN
  • Owlready2动态类生成

    我正在尝试为 owlready2 本体动态创建一个类 文档建议使用以下代码行 NewClass types new class NewClassName SuperClass kwds namespace my ontology 就我而言
  • Laravel 4 - 读取配置文件

    如何从 laravel 读取配置文件 例如数据库连接 app config database php 我想要来自配置的 mysql 数据 对于一个包 你可以这样做 return Config get package group option
  • 如何防止GDB单步执行每一个函数

    我的 GDB 调试器会自动进入大多数函数 特别是我的外部库 标准库 这很烦人 因为我知道这些库比我的代码写得更好 如何才能阻止 GDB 这样做呢 有两种方法可以得到你想要的东西 一是使用next而不是step step将进入函数调用 但是n
  • Three.js计算充满屏幕所需的物体距离

    我见过很多关于如何缩放相机以使物体充满屏幕的问题 但我正在尝试移动物体以充满屏幕 我一直在尝试使用原始照片像素大小进行类似的操作 并且这些对象已缩放 var dist object originalSize height gt window
  • Arquillian:添加 beans.xml 会导致“ArquillianServletRunner 未找到”

    我正在使用 Arquillian 1 在 Eclipse 2 IDE 内的嵌入式 glassfish 环境中测试我的 J2EE App package test java import org jboss arquillian contai
  • hadoop中的全局变量

    我的程序遵循迭代映射 归约方法 如果满足某些条件 则需要停止 无论如何 我是否可以设置一个可以分布在所有映射 归约任务中的全局变量 并检查全局变量是否达到完成条件 像这样的东西 While Condition true Configurat
  • 在特定时间启动和停止视频 Windows Media Player

    我正在使用 Windows Media Player 对象在我的 C winforms 项目中播放视频 VideoPlayer URL C test avi 我的 test avi 持续时间是 12 秒 我想播放 4 到 8 秒 我可以从
  • 如何将admob广告添加到Xamarin IOS

    我正在尝试将 Admob 广告添加到 Xamarin IOS 但我无法找到实现此目标的方法 我已经搜索过互联网 但找不到解决方案 Google Admob 可在 Xamarin iOS 中使用 1 安装包Xamarin Firebase i
  • 在我的服务器上运行 node.js 脚本需要什么?

    我有一个标准的 Apache 服务器 我需要什么特殊的东西才能在服务器端运行 node js 脚本 http socket io 吗 Node js 提供了自己的 HTTP 服务器 因此不需要 Apache 如果您希望在同一台服务器上运行
  • 访问其他类变量

    我正在开发乒乓球游戏 因为我是编程新手 所以我不知道如何访问另一个类变量 我有单独的班级 绿色和蓝色的球拍 一个球和游戏 1 cs 我用 bool movingUp movingLeft 控制球的运动 它从屏幕边框反弹 但我不知道如何让它与
  • 在 Xcode 控制台中查看 Unicode 字符?

    当我这样做时 我需要在 Xcode 控制台中看到一些带有 Unicode 字符的字符串NSLog some unicode characters Eg abc u0001xyz u0002pqr 但是 Xcode 控制台只显示abcxyzp
  • 无法使用 Ansible 获取 .bashrc

    我可以 ssh 到远程主机并执行source home username bashrc 一切正常 但是如果我这样做 name source bashrc sudo no action command source home username
  • 无法在 iPhone 上安装配置文件(iOS 8 beta 4 / Xcode 6 Beta 4)

    我无法在 OS X Yosemite dev Preview 4 上运行 iOS beta 4 和 Xcode beta 4 的 iPhone 5S 上安装任何 iOS 开发者发行版或开发者链接的配置文件 我已经通过恢复重新安装了 iOS
  • 旋转 Pandas DataFrame 的列名称

    我正在尝试用 pandas 制作格式良好的表格 我的一些专栏名称太长了 这些列的单元格很大 导致整个表格混乱 在我的示例中 是否可以在显示时旋转列名称 data Way too long of a column to be reasonab
  • 将日期时间与未指定和 UTC 类型进行比较

    我有2个DateTime values date1 date2 比较这 2 个日期时 这 2 个日期相等 if DateTime Compare date1 date2 0 有人可以解释为什么吗 对我来说有点奇怪 当将 date1 未指定类