选择合适的 Noda 时间结构
Selecting appropriate Noda time structures
我有以下数据,我正在使用 .net time 和 运行 查询时区和跨度问题。我被推荐使用 Noda Time.
"MarketStates": {
"dataTimeZone": "America/New_York",
"monday": [
{
"start": "04:00:00",
"end": "09:30:00",
"state": "premarket"
},
{
"start": "09:30:00",
"end": "16:00:00",
"state": "market"
}
],
"holidays": [
"1/1/1998",
"1/1/1999",
"1/1/2001"
],
"earlyCloses": {
"7/3/2000": "13:00:00",
"7/3/2001": "13:00:00"
}
}
我正在写一个函数 IsMarketOpen
提供一个时间来测试,上面的 MarketStates
json 数据库 - 如果当前时间是 returns true市场开盘,如果节假日或提前收盘则为假。
对于市场状态(monday
以上)我将使用 LocalTime
。
对于 earlyCloses
我打算使用 ZonedDateTime
。
对于进入此方法的时间,我将使用 ZonedDateTime
。
对于holidays
,我需要保留时区吗?我找不到 ZonedDate
,只有 OffsetDate
or LocalDate
?
总而言之,我应该保留所有内容 ZonedDateTime
(因为我在上面的 json 数据库片段中指定了时区),还是使用 LocalDateTime
然后执行 conversion/testing 在那个时候?
以上问题请多多包涵,没想到时间这么辛苦,结构选择需要指导,如果需要额外的上下文,我会根据评论进行调整。谢谢。
你的earlyCloses
看起来真的是Dictionary<LocalDate, LocalTime>
,而holidays
是List<LocalDate>
。 (附带说明一下,它没有使用 ISO-8601 作为日期格式,这太糟糕了……我不知道那些提前关闭是 7 月 3 日还是 3 月 7 日。)
时区由 dataTimeZone
指定,但我建议在模型中将其保留为字符串,并在需要时将其转换为 DateTimeZone
。
我要说的主旨是,我鼓励您使直接模型中的值(从 JSON 加载并保存到 JSON)与实际存储在JSON。你可以在那个模型周围有一个包装器,它(例如)将早期关闭转换为 ZonedDateTime
值......但我通常发现保持“普通模型”简单非常有用,所以你可以立即猜测JSON 中的表示只是通过查看它。
我有以下数据,我正在使用 .net time 和 运行 查询时区和跨度问题。我被推荐使用 Noda Time.
"MarketStates": {
"dataTimeZone": "America/New_York",
"monday": [
{
"start": "04:00:00",
"end": "09:30:00",
"state": "premarket"
},
{
"start": "09:30:00",
"end": "16:00:00",
"state": "market"
}
],
"holidays": [
"1/1/1998",
"1/1/1999",
"1/1/2001"
],
"earlyCloses": {
"7/3/2000": "13:00:00",
"7/3/2001": "13:00:00"
}
}
我正在写一个函数 IsMarketOpen
提供一个时间来测试,上面的 MarketStates
json 数据库 - 如果当前时间是 returns true市场开盘,如果节假日或提前收盘则为假。
对于市场状态(monday
以上)我将使用 LocalTime
。
对于 earlyCloses
我打算使用 ZonedDateTime
。
对于进入此方法的时间,我将使用 ZonedDateTime
。
对于holidays
,我需要保留时区吗?我找不到 ZonedDate
,只有 OffsetDate
or LocalDate
?
总而言之,我应该保留所有内容 ZonedDateTime
(因为我在上面的 json 数据库片段中指定了时区),还是使用 LocalDateTime
然后执行 conversion/testing 在那个时候?
以上问题请多多包涵,没想到时间这么辛苦,结构选择需要指导,如果需要额外的上下文,我会根据评论进行调整。谢谢。
你的earlyCloses
看起来真的是Dictionary<LocalDate, LocalTime>
,而holidays
是List<LocalDate>
。 (附带说明一下,它没有使用 ISO-8601 作为日期格式,这太糟糕了……我不知道那些提前关闭是 7 月 3 日还是 3 月 7 日。)
时区由 dataTimeZone
指定,但我建议在模型中将其保留为字符串,并在需要时将其转换为 DateTimeZone
。
我要说的主旨是,我鼓励您使直接模型中的值(从 JSON 加载并保存到 JSON)与实际存储在JSON。你可以在那个模型周围有一个包装器,它(例如)将早期关闭转换为 ZonedDateTime
值......但我通常发现保持“普通模型”简单非常有用,所以你可以立即猜测JSON 中的表示只是通过查看它。