问题标签 [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 投票
2 回答
2061 浏览

c# - Nodatime 计算 X 天内的年/月/日

假设我有 678 天,如何计算从那一刻起有多少年、多少月、多少天?

0 投票
1 回答
3435 浏览

c# - 时区转换显示 EDT 而不是 EST

我正在使用这段代码将“东部时区”转换为“EST”。现在它显示“EDT”。您不会经常在某些地方看到那个缩写词并且愿意坚持使用“EST”。如何使用 NodaTime 执行此操作?

0 投票
3 回答
1665 浏览

c# - c# NodaTime 更改日期格式为 yyyy-MM-dd HH:mm:ss

我在项目的大部分代码中都使用了 NodaTime。我将 LocalDateTime 作为一个值,需要更改格式以将其作为日期时间字段插入 MySQL 数据库。

我见过一些关于 OffSetPattern 的东西,但不知道如何使用它。

这是我尝试将其写入数据库的地方。

LocalDateTime 格式为 04/10/2014 10:45:02 (示例)我需要它是 2014-04-10 10:45:02 作为字符串。

我试图串起来,但显然这在这种情况下不起作用。我已经看到了一些关于创建模式和解析它的东西,但我不明白该怎么做,因为我在 NodaTime 的任何地方都没有看到它?一般来说,对于 NodaTime 和 c# 来说还是新手,所以也许我错过了一些相对简单的东西。任何人都可以帮助获得我需要的格式吗?

0 投票
1 回答
200 浏览

c# - 使用 G / g 标准模式或 LocalDateTime 值

我正在尝试使用 Noda Time LocalDateTimePattern.Parse() 方法解析 LocalDateTime 值。我在美国。以下对 Parse() 的调用失败:

这也失败了

我究竟做错了什么?我的想法是能够将标准中呈现的 DateTime 字符串解析为当前的文化格式。

使用 BCL,如下所示:

(此处询问了相关的格式问题:http: //goo.gl/Q8DYTB

0 投票
1 回答
1192 浏览

c# - 如何以当前文化格式的默认值从 Noda Time OffsetDateTime 生成 DateTimeOffset 字符串?

假设我有 Noda Time LocalDateTime myLocalDateTime 和 Offset myOffset 变量。要生成 ISO8601 格式的 DateTimeOffset 字符串,我使用

现在,我还想以当前文化格式的默认值生成 DateTimeOffset 字符串。

对于美国,它就像“2014 年 4 月 10 日下午 3:03:11 -07:00”。我正在考虑将“G”模式与 CurrentCulture 组合用于 DateTime 部分,然后将“m”格式用于 Offset。我该怎么做?像使用“G m”作为模式文本之类的东西?

(这里提出了相关的解析问题:http: //goo.gl/OVeQJT

0 投票
1 回答
7398 浏览

c# - 日期时间到本地日期 (NodaTime)

我有一个DateTime需要转换为NodaTime LocalDate. 这可以做到吗?

我有这个:

我想要这个:

但看起来 NodaTime API无法从中获取日期值GetLastWriteTime

所以我要么需要a)将DateTime转换为LocalTime,要么b)以某种方式使用LocalTime来获取日期值GetLastWriteTime

0 投票
3 回答
672 浏览

c# - Noda Time (C#) 解析 JSON(假定为 ISO 8601)日期的魔术。例如 1396949418557

我不能终生将我被告知是 ISO 8601(例如'1396949418557')的日期字符串反序列化为 C# DateTime 对象。

我真的很喜欢我读过的关于 Noda Time 的内容,而且我正在使用 JSON.NET。有没有人遇到过这个?

0 投票
1 回答
851 浏览

json.net - 可能的 NodaTime.Serialization.JsonNet 需要 Json.NET v 4.5 错误?

我发现与 NodaTime 相关的旧帖子需要 Json.Net v4.5,但已修复。我似乎在 NodaTime.Serialization.JsonNet 上看到了同样的情况。

重现此错误的最简单方法:通过在我的解决方案中向 VS 项目添加和删除 NodaTime.Serialization.JsonNet(通过 NugGet),我得到 Json.Net v4.5 的运行时程序集绑定/加载错误(我有 v 6。 x) 已安装。当我删除 NodaTime.Serialization.JsonNet 时,一切都很好。

NodaTime 本身很好——只是当我添加 NodaTime.Serialization.JsonNet 时才会发生错误。

有没有其他人遇到过这个问题?

更多信息:

我进一步缩小了这个范围,并隔离了这个问题,以便它只在从 PowerShell 运行时中调用 WCF 方法时发生。NodaTime.Serialization.JsonNet 在仅限 WCF 的测试中工作得很好。

在调用“ConfigureForNodaTime”时,错误是:

无法加载文件或程序集“Newtonsoft.Json,Version=4.5.0.0,Culture=neutral,PublicKeyToken=30ad4fe6b2a6aeed”或其依赖项之一。该系统找不到指定的文件。

我会继续看这个,但想提供一个更新。

附加信息:

app.config(仅供参考):

乔恩,马特:

当我打开源代码时,NodaTime.Serialization.JsonNet 项目设置指的是 'C:\Program Files\Microsoft SDKs\Windows Azure.NET SDK\v2.3\ref\Newtonsoft.Json.dll', v4.0.30319, 4.5 .0.0,真

考虑到这些设置,也许在构建解析为该路径的 CS 项目文件时:

如果我绕过“ConfigureForNodaTime”扩展方法,并尝试在辅助方法中将 NodaTime 转换器添加到序列化程序实例,则会发生相同的错误。因此,具体而言,我无法通过添加转换器。我无法在不遇到程序集加载异常的情况下进入添加转换器的辅助方法。

我还能够在 PowerShell 之外在引用我的 Web api 库和 Json.Net 序列化程序集的控制台应用程序中重现此内容。

我将把源代码添加到我的项目中(与这个测试项目相比)并重新编译,看看这是否能解决问题。

更新:

当我加载“全部”解决方案(源代码)并尝试构建时,我发现了下面的警告。作为实验,我将目标(.net)框架从 v3.5 客户端更改为 v4.5,警告消失了。

无法解析主要参考“Newtonsoft.Json,Version=4.5.0.0,Culture=neutral,PublicKeyToken=30ad4fe6b2a6aeed,processorArchitecture=MSIL”,因为它间接依赖于 .NET Framework 程序集“System.Runtime.Serialization.Formatters” .Soap,Version=4.0.0.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a",其版本"4.0.0.0"高于当前目标框架中的"2.0.0.0"版本。NodaTime.Serialization.JsonNet

更新:虽然我还没有确凿证据,但我可以确认摆脱 Nuget 依赖问题并不能缓解问题(我怀疑这个问题)。为了找到书挡,我将 Json.Net 和 NodaTime 的源代码添加到我的解决方案中以获得更大的控制权。

成功的解决方法是将 NodaTime 项目的目标框架更改为 .NET v4.5。v4.0 没用,v4.5 没用。这不是 NodaTime(我确实很喜欢,顺便说一句)本身的“修复”,因为其中一个目标是使其可用于可能不使用最新 .NET 框架版本的广泛应用程序。但它(我希望)是一个数据点,可能证明对诊断可能的变化很有用(如果其他人需要的话)。

我现在面临着相当大的时间压力,但我将承诺最终在我的特定案例中找到确凿的证据,以防万一其他人将来会遇到它。

最热烈的问候,Jp

0 投票
1 回答
6965 浏览

nodatime - 如何将 ISO 字符串值解析为 NodaTime Instant?

我开始了解 NodaTime 并且非常喜欢它。但我不太了解它(还)!

给定一个诸如“2014-04-08T09:30:18Z”之类的值,将这样的字符串解析为 NodaTime Instant 所需的步骤是什么?

谢谢!

0 投票
1 回答
221 浏览

c# - 为什么 NodaTime 不支持某些国家/地区?

我在我的网站中使用“NodaTime.dll,v1.2.0.0”来计算时区我使用此代码来检索 ZonedId:

它工作正常,但是当我想通过国家代码将它用于“阿森松岛”时:“AC”或英国的“UK”,它返回 null。

我想知道这个库不支持这个还是我走错路了?