问题标签 [nodatime]

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.

0 投票
1 回答
6123 浏览

asp.net - NodaTime 转换(第 2 部分)。如何?

在我的第一篇文章之后:

在 ASP.Net MVC 3 Razor 网站上使用 NodaTime 进行日期时间转换。如何?

我正在努力寻找一种使用 NodaTime 在本地和 UTC(两种方式)之间转换日期/时间的简单方法。

目前的图片是:

  • 我在数据库中将日期/时间保存为 UTC。
  • 在向用户显示时,我应该考虑本地时区并相应地进行转换。
  • 当用户提供日期/时间作为过滤器时,我需要在发送到 SQL 查询之前将其转换回 UTC。

到目前为止我所拥有的:

从 UTC 转换为本地的扩展(这部分工作正常):

从本地转换回 UTC 的扩展(这部分是问题):

我在这里做错了什么?

0 投票
1 回答
375 浏览

timezone - 分区日期时间到 UTC 时间 - LocalDateTimePattern 抛出异常

我正在尝试使用以下代码在 NodaTime 中使用 LocalDateTime 模式从分区日期时间获取 UTC 时间。

在下面提到的场景中,我在解析期间遇到异常- 1) 如果模式类似于“MM/dd/yyyy HH:mm:ss tt”并且 DateTime 字符串类似于“5/28/2013 1:02:ss PM” 2) 如果模式类似于“MM-dd-yyyy HH:mm:ss tt”并且 DateTime 字符串类似于“5/28/2013 1:02:ss PM”

对于第一种情况,如果我将模式更改为“M/dd/yyyy HH:mm:ss tt”,它将起作用,但我最终会失去前导零。如果我将模式更改为“MM/dd/yyyy HH:mm:ss tt”,第二种情况将起作用

有没有其他方法可以获取 UTC 值,或者我在这里做错了什么。

0 投票
1 回答
2055 浏览

datetime - 使用 NodaTime 将 UTC 日期时间字符串转换为 Zoned DateTime

我需要将 UTCDateTime字符串转换为ZonedDateTime.

UTCDateTime字符串只能是一种模式,因为 SharePoint类型列(M/dd/yyyy h:mm:ss tt)中仅支持此格式。DateTime

假设(5/28/2013 1:00:00 PM)作为我的 UTC 时间,我怎样才能将其转换为ZonedDateTime?我目前正在使用下面的代码来获取ZonedDateTime.

上面的代码需要year, month, day, hour, 和minuteasint值。有没有更简单的方法可以ZonedDateTime直接从 UTC 字符串中获取?

0 投票
1 回答
1274 浏览

datetime - 使用 NodaTime 解析 DateTime 字符串

我们如何使用 NodaTime 解析 Zoned DateTime 字符串?我目前正在使用 LocalDateTimePattern 进行解析,但我认为产生的 DateTime 值将在服务器的时区中。

我在查看 Noda Time API时遇到了 ZonedDateTime 模式。但是,我无法使用它。我错过了什么吗?

0 投票
1 回答
2687 浏览

c# - 您如何处理 .net 中的“模糊时间”?

我需要将不同时区的“日期时间”值转换为 UTC,反之亦然。我使用 TimeZoneInfo 来做到这一点。但是,问题在于“夏令时”时间更改何时发生。

例如,今年,下一次时间更改发生在 11 月 3 日凌晨 2 点 [CDT]。所以在 11 月 3 日,凌晨 1 点 [CDT] 转换为 6 点,并且随着时间更改在下一小时发生,我们得到 1 点[现在它的 CST]再次,它也被转换为早上 6 点。我尝试了页面上的代码,但没有说明如何处理此问题。那么这个问题怎么处理???

编辑:

我尝试了 NodaTime,当我进行转换时

它抛出 AmbiguousTimeException。这很好,我也可以使用 TimeZoneInfo 来做到这一点。但是我怎么知道我需要选择哪个 localTime 值?

编辑2:

这是与马特聊天讨论的链接

0 投票
3 回答
74800 浏览

c# - 如何在 Windows 和 IANA 时区之间进行转换?

时区标签 wiki中所述,有两种不同风格的时区。

  • Microsoft 提供的用于 Windows 和 .NetTimeZoneInfo类(在 Windows 上运行时)的那些由诸如"Eastern Standard Time".

  • 在 TZDB 中由 IANA 提供并由 .NETTimeZoneInfo类在 Linux 或 OSX 上运行时使用的那些由诸如"America/New_York".

许多基于 Internet 的 API 使用 IANA 时区,但出于多种原因,可能需要将其转换为 Windows 时区 ID,反之亦然。

这如何在 .Net 中实现?

0 投票
1 回答
8826 浏览

c# - 使用 Nodatime 将 UTC 时间转换为本地时间

我得到了这种格式“ddMMyyHHmmss”的时间。我知道时间是 UTC 格式的。我想使用 NodaTime 库将其转换为我的本地时区,但我似乎无法弄清楚。我的本地时区目标是新西兰。

这是我尝试过的:

0 投票
1 回答
190 浏览

nuget-package - NodaTime.Serialization.JsonNet 在哪里?

最新的 API 文档中,NodaTime.Serialization.JsonNet 显示为 NodaTime 库的一部分。

在此处输入图像描述

但我在任何地方都找不到。这是我的 VisualStudio 中 ObjectBrowser 中的 NodeTime。

在此处输入图像描述

我什至查看了 NodeTime.Testing 并没有找到它。

在此处输入图像描述

我不知道该去哪里找了。这两个(NodeTime 和 NodeTime.Testing)只是 NuGet 上可用的包。

0 投票
2 回答
1722 浏览

c# - NodaTime 与 MongoDB:值类 NodaTime.ZonedDateTime 无法反序列化

我正在使用最新版本的NodaTimeMongo DB Official Driver。我有一个简单的 POCO 类,它在一些属性中使用 NodaTimeZonedDateTime作为 .NET DateTime 的替代品。

我可以轻松地将模型放入集合中,但是当我尝试读取查询的模型时,我得到以下信息MongoDB.Bson.BsonSerializationException

值类 NodaTime.ZonedDateTime 无法反序列化

解决/解决此问题的好方法或最佳实践是什么?

更新

在发布我的问题解决方案后,我面临一个可能的新问题......当我查询集合并在查询中使用 DateTime 时,就像where SomeDateTime < now' (where现在is a variable I create from system time) it seems that each document must be deserialized using my可以评估 where 子句之前的 ZonedDateTimeSerializer`。这看起来像一个很大的性能问题,不是吗?我真的不得不考虑再次回到 BCL DateTime,即使它很痛。

更新 2

我接受了我的解决方案ZonedDateTimeSerializer,但我对 NodaTime 与 MongoDB 的结合感到不舒服,虽然两者都是很好的单独解决方案。但是如果没有大量的操作,它们目前不能很好地协同工作。

0 投票
1 回答
569 浏览

c# - 自定义序列化程序如何影响搜索?

我正在尝试在我的应用程序中使用NodaTime。该应用程序将数据持久保存在 mongodb 数据库中。考虑下面的类

如果不添加自定义序列化程序,Instant类的属性不会存储在数据库中。从数据库读取文档也失败了。

我创建了上面的序列化程序并正确注册了它。我现在可以使用为Instant.

我的问题是 C# 驱动程序如何使用 linq 处理搜索?

我得到了正确的文件清单。我试图了解 mongodb 如何获取这些数据。它是否首先加载所有数据,正确反序列化然后过滤?还是序列化Instantwhere 子句的值并使用序列化的值过滤所有文档,加载匹配的文档然后反序列化?

我尝试查看 mongodb 探查器记录的查询,但它似乎没有记录任何内容。我已将分析级别设置为 2。

Instant在序列化值的情况下是 a long。但在 的情况下ZonedDateTime,序列化值将是具有两个属性的文档。在这种情况下,搜索将如何工作?

编辑:

我能够让分析工作。以下 c# 查询,

导致以下 mongodb 查询

意思是,c# 驱动程序序列化我的Instant对象并使用序列化的值来过滤数据库本身的结果。