将 DateTime.MinValue 转换为 DateTimeOffset

2024-05-25

我正在尝试将 DateTime.MinValue 转换为 DateTimeOffset 值,但收到 ArgumentOutOfRange 异常。

我正在看有关 DateTime 到 DateTimeOffset 隐式转换的 MSDN 文章 http://msdn.microsoft.com/en-us/library/system.datetimeoffset.op_implicit%28v=VS.90%29.aspx异常部分指出,我将在以下情况下收到此 ArgumentOutOfRange 异常:

... 应用偏移后得到的协调世界时 (UTC) 日期和时间为earlier比最小值。 ...

那么为什么下面的代码会抛出异常?

DateTime test = DateTime.MinValue;
DateTimeOffset dto = test;

这仅仅是因为我的时区吗?我现在是 GMT +8,但我对上面代码的理解是测试是用 Unspecified 类型创建的。

我正在通过简单地测试 DateTime 的 MinValue 来解决这个问题,如果是这样,则使用 DateTimeOffset.MinValue 代替。

我只是好奇为什么我未指定的 DateTime 对象会导致错误。


如果您的时间是 GMT+8,那么local的时间DateTime.MinValue对应于一个UTC时间早于DateTime.MinValue,因此例外。从您引用的文档中:

如果 DateTime.Kind 属性的值为 DateTimeKind.Local 或 DateTimeKind.Unspecified,则 DateTimeOffset 对象的日期和时间设置为等于 dateTime,并且其 Offset 属性设置为等于本地系统当前时区的偏移量。

所以从逻辑上讲你would have a DateTime of MinValueOffset8 小时,但这意味着应用偏移量产生的 UTC 日期/时间早于可以表示的时间。

(别忘了你add与 UTC 的偏移量以获取当地时间,或者subtract它从当地时间获取UTC。在野田时间 http://noda-time.googlecode.com我们通过为每个使用类型来强制执行此操作Offset, LocalInstant and Instant,并且只允许您执行适当的操作...)

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

将 DateTime.MinValue 转换为 DateTimeOffset 的相关文章

  • 获取本周星期一和星期五的日期 (PHP)

    如何获取本周周一和周五的日期 我有以下代码 但如果当天是星期日或星期六 则会失败 current day date N days to friday 5 current day days from monday current day 1
  • 计算两个日期之间的工作日数?

    在C 中 如何计算business 或工作日 两个日期之间的天数 我以前曾经遇到过这样的任务 并且我已经找到了解决方案 当可以避免的时候 我会避免列举其间的所有日子 这里就是这种情况 正如我在上面的一个答案中看到的那样 我什至没有提到创建一
  • 使用icalendar解析日期并与python日期时间进行比较

    我有一个 ics 文件 我想从中提取今天发生的所有事件 我认为我在将 icalendar DTSTART 和 DTEND 转换为 python 日期时间时遇到问题 我尝试按照以下位置的文档进行操作icalendar readthedocs
  • DateTime.ParseExact - 为什么 yy 变成 2015 而不是 1915

    为什么 NET 假定以下年份是 2015 年 而不是 1915 年 var d DateTime ParseExact 20 11 15 dd MM yy new CultureInfo en GB 我想 它会尝试接近 但其背后是否有合理的
  • HighCharts 在 xAxis 上显示日期时间格式

    我试图在高图表的 x 轴上以日 周 月格式显示日期时间 我将数据格式化为 x utc 日期时间格式和 y 幅度 我的印象是我只需要这样做就可以了 Highcharts chart container title text Chart wit
  • 在 Tomcat 中处理夏令时,无需重新启动服务器

    我有一个在 Tomcat 上运行的 Java Web 应用程序 用于为客户端创建计划事件 我有一个关于底层操作系统 Tomcat 和 JVM 的默认日期时间的问题 当我检索Date通过Java代码它与底层操作系统类似 然后我更改了操作系统时
  • Python datetime.now() 和填充日期的 Series 之间的年数差异?

    我想在我的数据集中创建一个新列 该列与今天和数据集中已有的另一列 填充了日期 之间有几年的差异 上面的代码 df diff years datetime today df some date df diff years 给我以下输出 示例
  • 尽管格式正确,熊猫仍无法推断时间序列频率?

    我有以下数据框 1 df index 1 DatetimeIndex 1981 01 01 1981 01 02 1981 01 03 1981 01 04 1981 01 05 1981 01 06 1981 01 07 1981 01
  • MySQL - 基于日期加入

    是否可以根据同一日期连接两个表 而不考虑时间 就像是 从预约左侧加入销售 约会 日期 销售 日期 唯一的问题是它是一个日期时间字段 所以我想确保它只查看日期并忽略时间 你可以这样做 FROM appointments LEFT JOIN s
  • Nullable DateTime 工作是否正确?

    请检查以下代码 DateTime tmp new DateTime tmp null return tmp ToString 它返回String Empty 这是对的吗 可能在第二行代码中引发异常会更好 是的 这是正确的 来自文档 http
  • std::get_time 未解析日期

    如果我尝试将这一天设置为tm with std get time什么也没发生 但是输入流处于失败状态 这意味着发生了解析错误 下面的代码有什么问题 setting time works std tm t std istringstream
  • 如何在当前时间添加时间

    我对这个问题很困惑 我想抓取当前时间 而不是根据条件 我想将所需的时间添加到当前时间 例如 current time 06 47 10 or should i hv to change this format to 2011 03 26 0
  • Django 似乎以 UTC 格式显示日期时间

    In settings py I have TIME ZONE Asia Singapore USE I18N True USE L10N True USE TZ True 如果用户 居住在新加坡 输入2013 10 07 01 00 A
  • 有效地从 2 个数据帧中查找日期时间范围的重叠

    关于查找日期或时间范围的重叠存在一些问题 例如 https stackoverflow com questions 9044084 efficient date range overlap calculation in python 我用这
  • 将字符串替换为 jq

    我有以下文件file txt a a b a time 20210210T10 10 00 a b b b time 20210210T11 10 00 我用以下方法提取值bash命令jq 我在海量 100g 文件上使用此命令 jq r a
  • 如何在Python中测量时间?

    我想启动我的程序 测量程序启动的时间 然后等待几秒钟 按下按钮 K RIGHT 并测量按下按钮的时间 我正在使用 Pygame 来注册 Keydown 但在我下面的代码中它没有注册我的 Keydown 我在这里做错了什么 start tim
  • utcoffset 方法在日期时间中做什么 - Python

    我知道这个问题的答案通常是 去Python 的文档 https docs python org 3 library datetime html highlight utcoffset datetime datetime utcoffset
  • java.time DateTimeFormatter 解析具有灵活的后备值

    我正在尝试将一些代码从 joda 时间移植到 java 时间 JodaTime 可以像这样指定年份的后备值 parser withDefaultYear new DateTime DateTimeZone UTC getYear parse
  • 在 x 轴上操作日期 Pandas Matplotlib

    我有一组非常简单的数据 如下所示 我正在寻找一种方法来绘制此堆积条形图并格式化 x 轴 日期 使其从 1996 年 31 月 12 日开始 到 2016 年 31 月 12 日结束 增量为 365 天 我编写的代码绘制了每个日期 因此 x
  • 使用 JavaScript 比较两个日期未按预期工作[重复]

    这个问题在这里已经有答案了 这是我的 JavaScript 代码 var prevDate new Date 1 25 2011 the string contains a date which comes from a server si

随机推荐