- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我生活在一个每年更改两次时间的国家。即:一年中有一段时期与 UTC 的偏移量为 -3 小时(-180 分钟),其他时期的偏移量为 -4 小时(-240 分钟)
从图形上看:
|------- (offset = -3) -------|------- (offset is -4) -------|
start of year mid end of year
我的问题是:
“时区”只是代表偏移量的数字?那就是:我国有两个时区?或者时区包含此信息?
这很重要,因为我将 UTC 时区(偏移 = 0)中的每个日期保存在数据库中。
我是否应该使用本地时区保存日期并保存它们的偏移量(在保存时)?
以下是我通过使用 UTC 时区保存日期时遇到的问题的示例:
假设我有一个人们发送消息的系统。
我想要一个统计部分,在其中绘制“发送的消息与小时的关系”(即:“常规日期按小时发送的消息”)
假设整个数据库中只有两条消息:
然后,如果我在 8 月 2 日创建绘图,将这些 UTC 日期转换为本地日期将给出:“2 条消息于下午 1 点发送”,这是不稳定的信息!
最佳答案
来自timezone标签维基 here on StackOverflow :
TimeZone != Offset
A time zone can not be represented solely by an offset from UTC. Many time zones have more than one offset due to "daylight savings time" or "summer time" rules. The dates that offsets change are also part of the rules for the time zone, as are any historical offset changes. Many software programs, libraries, and web services disregard this important detail, and erroneously call the standard or current offset the "zone". This can lead to confusion, and misuse of the data. Please use the correct terminology whenever possible.
有两个常用的数据库,Microsoft Windows 时区数据库和 IANA/Olson 时区数据库。请参阅the wiki了解更多详情。
您的具体问题:
the "timezone" is just the number representing the offset? that is: my country has two timezones? or the timezone includes this information?
您有一个“时区”。它包括两个“偏移量”。
Should I, instead, be saving the dates with local timezone and saving their offset (at the moment of saving) too?
如果您要记录事件发生或将要发生的精确时刻,那么您应该存储该特定时间的偏移量。在 .Net和 SQL Server ,这是使用 DateTimeOffset
表示的。其他平台也有类似的数据类型。它仅包含偏移信息 - 不包含偏移源自的时区。通常以ISO8601格式序列化,如:
2013-05-09T13:29:00-04:00
如果您可能需要编辑那个时间,那么您不能只存储偏移量。在系统中的某个位置,您还需要具有时区标识符。否则,您无法确定编辑完成后新的偏移量应该是多少。如果您愿意,可以将其与值本身一起存储。有些平台有专门用于此目的的对象 - 例如 NodaTime 中的 ZonedDateTime
。示例:
2013-05-09T13:29:00-04:00 America/New_York
即使存储区域 id,您仍然需要记录偏移量。这是为了解决从日光偏移到标准偏移的“回退”过渡期间的歧义。
或者,您可以使用时区名称存储 UTC 时间:
2013-05-09T17:29:00Z America/New_York
这也同样有效,但您必须在向任何人显示该值之前应用时区。 Oracle 中的带有时区的时间戳
和 PostgreSQL按照这种方式工作。
您可以在this post中阅读更多相关信息。 ,而以 .Net 为重点 - 这个想法也适用于其他平台。您给出的示例问题就是我所说的“保持观察者的视角” - 这在同一篇文章中进行了讨论。
关于timezone - 时区只是一个偏移量还是 "more information"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16467114/
我的一个 friend 在一次求职面试中被要求编写一个程序来测量可用 RAM 的数量。预期的答案是以二进制搜索方式使用 malloc():分配越来越大的内存部分,直到收到失败消息,减少部分大小,然后对
我正在通过任务管理器检查 Chrome 中特定选项卡的内存消耗情况。它显示了我使用的 RAM 量相当大: 但是,当我在开发人员工具中拍摄堆快照时,其显示的大小要小几倍: 怎么会这样呢? 最佳答案 并非
是否有一种可移植的方式,可以在各种支持的操作系统上同时在 .Net 和 Mono 上运行,让程序知道它运行的机器上有多少 RAM(即物理内存而不是虚拟内存)可用? 上下文是一个程序,其内存要求是“请尽
有谁知道是否有办法查看 android studio 项目中的所有 View 、LinearLayout、TextView 等? 我正在使用 android 设备监视器中的层次结构查看器使用 xml
很简单,我想从 Python 脚本中运行外部命令/程序,完成后我还想知道它消耗了多少 CPU 时间。 困难模式:并行运行多个命令不会导致 CPU 消耗结果不准确。 最佳答案 在 UNIX 上: (a)
我需要在给定数组索引和范围的情况下,在返回新索引的数组中向前循环 X 量并向后循环 X 量。 如果循环向前到达数组的末尾,它将在数组的开头继续。如果循环在向后时到达开头,它会在数组末尾继续。 例如,数
Android 应用程序中是否有类似最大 Activity 的内容?我想知道,因为我正在考虑创建具有铃声功能的声音应用程序。它将有大约 40 个 Activity 。但只有 1 个会持续运行。那太多了
有什么方法可以限制这种演示文稿的 curl 量吗?我知道系统会根据我们以 taht 方式模态呈现的 viewcontroller View 内的内容自动 curl 。 但 thta 在我的 iPad
我正在编写一个 Java 应用程序,它需要检查系统中可用的最大 RAM 量(不是 VM 可用的 RAM)。有没有可移植的方式来做到这一点? 非常感谢:-) 最佳答案 JMX 您可以访问 java.la
我发现它使用了 600 MB 的 RAM,甚至超过了 Visual Studio(当它达到 400 MB 的 RAM 时我将其关闭)。 最佳答案 dart 编辑器基于 Eclipse,而 Eclips
这个问题已经有答案了: Java get available memory (10 个回答) 已关闭 7 年前。 假设我有一个专门运行一个程序的 JVM,我如何获得分配给 JVM 的 RAM 量? 假
我刚刚使用 Eclipse 编写了一个程序,该程序需要很长时间才能执行。它花费的时间甚至更长,因为它只将我的 CPU 加载到 25%(我假设这是因为我使用的是四核,而程序只使用一个核心)。有没有办法让
我编写了一个 2x2x2 魔方求解器,它使用广度优先搜索算法求解用户输入的立方体位置。该程序确实解决了立方体。然而,当我进入一个很难解决的问题时,我会在搜索的深处发现这个问题,我用完了堆空间。我的电脑
我正在尝试同步运行多个 fio 线程,但随着线程数量的增加,我的计算机内存不足。似乎每个 fio 线程占用大约 200MB 的 RAM。话虽这么说,有没有办法让每个线程都有一个固定的最大内存使用量?设
我使用“fitctree”函数(链接:https://de.mathworks.com/help/stats/classificationtree-class.html)在 Matlab 中开发了一个
我有一个 .NET 进程,由于我不会深入探讨的原因,它消耗了大量 RAM。我想要做的是对该进程可以使用的 RAM 量实现上限。有办法做到这一点吗? 我找到的最接近的是 Process.GetCurre
您可能已经看到许多“系统信息”应用程序,它们显示诸如剩余电池生命周期之类的信息,甚至显示内存等系统信息。 以类似的方式,是否有任何方法可以从我的应用中检索当前可用 RAM 量,以便我可以更好地决定何时
我从来都不是 MFC 的忠实粉丝,但这并不是重点。我读到微软将在 2010 年发布新版本的 MFC,这让我感到很奇怪 - 我以为 MFC 已经死了(不是恶意,我真的这样做了)。 MFC 是否用于新开发
我在一台安装了 8 GB 内存的机器上工作,我试图以编程方式确定机器中安装了多少内存。我已经尝试使用 sysctlbyname() 来获取安装的内存量,但它似乎仅限于返回带符号的 32 位整数。 ui
基本上,我想要一个由大小相同的 div(例如 100x100)和类似 200x100 的变体构建的页面。它们都 float :向左调整以相应地调整窗口大小。问题是,我不知道如何让它们在那种情况下居中,
我是一名优秀的程序员,十分优秀!