是否可以指定带时区但没有时间的ISO日期?

问题描述 投票:0回答:1

我正在尝试查看是否可以在ISO中指定带时区但不指定时间的日期。

问一下是否有一个时区而实际上没有时间似乎很奇怪,但是从技术上讲,日期代表两次之间的范围…​​…从午夜到午夜的24小时时段,“午夜”必须是在时区。

在我们的例子中,我们有一个API想要说“过滤日期X或之前的日期和日期Y或之后的内容”,并且我们希望用户指定“ 4月9日”(在其时区中)两者都可以获取当天发生的所有事情。

当然,我们可以通过在第一个日期前增加一天,然后将其更改为纯的'before'来解决此问题,但是要进行该数学运算,需要前端。我们无法在后端执行此操作,因为必须发送带有时间的日期,这意味着我们将在4月9日午夜发送消息,然后在后端添加一天,但是如果有人在下午4点过了该怎么办?

如果日期不是午夜时间,我们可能会失败,但是我们又回到为什么首先通过日期。

同样,您可以有带时区的日期但没有时间部分吗?

date iso8601
1个回答
0
投票

如果按时区表示UTC偏移量(与ISO 8601日期一起使用,则为时间),这没有问题。如果按时区表示具有UTC历史,当前和已知将来偏移量的真实时区,例如夏令时/夏令时,则ISO 8601不支持该时区,无论日期是否包含一天中的时间。

2020-04-25-04:00

这是今年4月25日完全正确的ISO 8601,偏移量为-04:00。因此,您可以使用它来表示从2020-04-25T00:00-04:00(包括)到2020-04-26T00:00-04:00(包括)的时间间隔。然后相当于2020-04-25T04:00Z到2020-04-25T04:00Z(Z表示UTC)。

© www.soinside.com 2019 - 2024. All rights reserved.