问题标签 [datetimeoffset]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
sql - 将 SQL Server DateTime 列迁移到 DateTimeOffset
我有一个旧表,其中有几行有一个日期时间列。我想将其切换到,datetimeoffset
但我希望能够传输已经存在的数据。所以我正在做类似的事情:
这可行,但是当我执行datetime
todatetimeoffset
分配时,偏移量设置为 0。幸运的是,我想设置的偏移量是当前系统的偏移量。我似乎想不出一个简单的方法来做到这一点。
我希望能够在转换中设置偏移量。我打算使用 C# 实用程序(或 PowerShell),但我宁愿保持简单。
offset - DateTimeOffset 添加 TimeSpan 为其 TimeZoneInfo 返回无效的 UTC 偏移量
我正在构建一个时间表达式库,该库必须正确全球化,因此可以在所有可用的时区工作。
现在我似乎被卡住了,因为我不确定如何在正确的夏令时 (DST) 中从 DateTimeOffset 对象中检索调整后的日期,当使用任何类型的 .Add 移动天数、小时数等越过过渡边界时。
有趣的是,我想出了一个解决本地系统时区的方法,但还没有找到任何方法将相同的策略应用于任何任意时区。
我能够找到一个片段(没有保留来源,抱歉!)它试图通过偏移量反向查找时区信息,但由于有多个潜在结果,每个结果都可能具有不同的 DST 规则,这些规则不起作用。(可能有一些优化可用,但我认为基本前提是有缺陷的)
证明这些东西可能有点乏味,所以我将核心问题提取到几个方法和单元测试中,希望能证明我面临的问题。
nhibernate - 使用 SQLite 和 DateTimeOffset 映射对 NHibernate 进行单元测试
移植应用程序以使用来自不同 ORM 的 NHibernate。
我已经开始提供针对内存 SQLite 数据库运行单元测试的能力。这适用于前几批测试,但我遇到了一个障碍。我们的应用程序将在现实世界中与 SQL 2008 服务器通信,因此,目前有几个模型具有 DateTimeOffset 属性。在非测试应用程序中映射到 SQL 2008 或从 SQL 2008 映射时,一切正常。
在配置数据库或其他一些设施时是否有某种机制,以便当我使用 SQLite 测试夹具中的会话时,DateTimeOffset 的东西被“自动神奇地”处理为更与平台无关的 DateTime?
sql-server-2008 - 使用 C# 时丢失 DateTimeOffset 精度
我有一个带有 DateTimeOffset(2) 类型的 CreatedDate 字段的 SQL Server 表。
表中的示例值为 2010-03-01 15:18:58.57 -05:00
例如,在 C# 中,我像这样检索这个值:
我看一下值:
MessageBox.Show(dt.Rows[0][0].ToString());
结果是 2010-03-01 15:18:58 -05:00,它缺少存储在数据库中的 .57。
如果我在 Watch 窗口中查看 dt.Rows[0][0],我也看不到 .57,因此它似乎已被截断。
有人可以对此有所了解吗?我需要使用日期来匹配数据库中的其他记录,并且需要 .57。
谢谢!
达尔维斯
datetime - 夏令时和时区最佳实践
我希望使这个问题及其答案成为处理夏令时的权威指南,特别是处理实际的转换。
如果你有什么要补充的,请做
许多系统都依赖于保持准确的时间,问题在于由于夏令时导致的时间变化——向前或向后移动时钟。
例如,在接单系统中具有取决于订单时间的业务规则——如果时钟发生变化,则规则可能不那么清晰。订单的时间应该如何坚持?当然有无数种场景——这只是一个说明性的场景。
- 你是如何处理夏令时问题的?
- 哪些假设是您的解决方案的一部分?(在这里寻找上下文)
同样重要的是,如果不是更重要的话:
- 你试过什么没用?
- 为什么它不起作用?
我会对编程、操作系统、数据持久性和该问题的其他相关方面感兴趣。
一般的答案很好,但我也想看看细节,特别是如果它们只在一个平台上可用。
entity-framework - Entity Framework 4 将 DateTimeOffset 映射到 Visual Studio 2010 中的 SQL 日期时间
我将 Visual Studio 2010 RTM 与 .NET/Entity Framework 4 RTM 与模型驱动的设计方法一起使用。当我使用 DateTimeOffset 字段创建实体时,EF 建模器尝试将 DateTimeOffset 映射到 SQL 日期时间而不是 SQL 日期时间偏移。我使用的是 SQL Server 2008 Express,因此数据库支持 datetimeoffset。
Visual Studio 出现此错误:
错误 2019:指定的成员映射无效。类型“Data.SqlStorage.MyType”中成员“Created”的类型“Edm.DateTimeOffset[Nullable=False,DefaultValue=,Precision=]”与“SqlServer.datetime[Nullable=False,DefaultValue=,Precision=] 不兼容3] 'Data.SqlStorage.Store.MyTypes 类型的成员'Created'
如果我直接在 EDMX StorageModels xml 部分中编辑类型,则会收到以下错误:
错误 40:类型 datetimeoffset 未使用命名空间或别名进行限定。只有 PrimitiveTypes 可以在没有限定的情况下使用。
为什么建模器不能正确地将其映射到 SQL datetimeoffset 类型?当我仍在使用 Visual Studio 2010 和 .NET Framework 4 的 beta 版本时,也出现了这个问题。
c# - 安全地将 UTC 日期时间转换为本地时间(基于 TZ)进行计算?
继我最后一个问题之后,@Jon Skeet给了我很多帮助(再次感谢!)
我现在想知道当日期/时间转换回本地日期/时间时,如何安全地使用存储为 UTC 的日期/时间。
正如乔恩在我的最后一个问题中指出的那样,使用DateTimeOffset
表示时间的瞬间,并且无法预测一分钟后的当地时间。我需要能够根据这些日期/时间进行计算。
那么,当我从数据库中提取日期、将它们转换为本地日期/时间并对它们进行特定计算时,我如何确保它们是准确的呢?
设想
我的申请记录了通过电子邮件发送的信息。收到电子邮件的日期/时间记录为提交时间。电子邮件是从交换中提取的。
我需要知道的是:
1)如果这些电子邮件来自不同的国家,我是否只需将Recieved
电子邮件的日期/时间转换为 UTC 格式并存储它?例如Email.Received.ToUniversalTime()
c# - 将 DateTimeOffset 值从 SQL 2008 获取到 C#
我有一个 SQL 2008 表,其中有一个名为 RecDate 的字段DateTimeOffset
。
对于给定的记录,值为 '2010-04-01 17:19:23.62 -05:00'
在 C# 中,我创建了一个 DataTable 并用以下结果填充它
我需要获取毫秒数,但如果我执行以下操作,毫秒数始终为 0:
将 RecDate 列中的值放入 DTO 变量的正确方法是什么?
c# - 如何将我的 DateTimeOffset 转换为 Twitter 日期/时间?
如何将 a 转换DateTimeOffset.Now
为与 twitter 兼容的日期/时间?
推特示例:
干杯:)
c# - 如何在夏令时使用 TimeZoneInfo 获取本地时间?
我试图用它DateTimeOffset
来传达任何时区的特定时刻。我不知道如何使用TimeZoneInfo
来处理夏令时。
这打印出来:
我在中央时区,我们目前处于夏令时。我试图让第二行阅读:
BaseUtcOffset
显然不会根据 DST 改变。
如何使用正确的偏移值获得正确的时间?