我应该如何存储不同时区事件的数据?

2024-04-25

这是一个概念性问题,因此这里没有代码片段。

假设我创建了一个事件数据库。其中一些在纽约,一些在芝加哥,一些在凤凰城,等等......

我的服务器的时区设置为纽约。

在我看来,为所有这些事件创建 UNIX 时间戳时有两种选择。

  1. 考虑时区。 (即,1 月 1 日午夜在芝加哥和菲尼克斯发生的事件将具有不同的时间戳)。然后,每当我想以文本格式显示日期时,我都必须再次考虑时区。

  2. 假装所有事件都发生在纽约来捏造事实。 1 月 1 日午夜在芝加哥和菲尼克斯发生的事件将具有相同的时间戳。由于我的服务器设置为纽约,因此我不必为每个事件考虑时区。

哪种方法更好?方法 1 给出了更“真实”的时间戳,但方法 2 似乎不太复杂,但仍然给出相同的结果。


一切应以 UTC 存储,以便有一致的比较和计算基础。只有当有人参与时才应将其转换为当地时间。

使用 UTC 将极大地简化您的代码,因为您不必在每个日期/时间中携带时区并在许多不同的区域执行复杂的计算 - 我们did这在一个项目上一次,我会quit在我再次这样做之前:-)

换句话说,如果用户输入纽约时间,请尽快将其转换为 UTC。向用户显示日期/时间时,请尽可能晚地将其更改回本地时间。

And, unless you have a real, pressing need (for example) to tell someone in Mumbai what the local time was in New York when the NY event happened (or will happen), you don't need to store the timezone for the event. If you do have such a need (a), by all means store the timezone as well, so you can get both local time where you are and local time where the event is/was.


(a) CJBS points out a few good examples in comments below, such as:

  • 在航班上,了解抵达目的地的当地时间非常有用,以便可以在那里预订出租车;或者
  • 安排与活动中的人员在特定时间见面。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

我应该如何存储不同时区事件的数据? 的相关文章

  • SQL语句帮助--选择今天下单的客户

    假设我有一个存储客户订单 ID 的表 例如 客户 ID 订单编号 订购日期 如何获取今天下单的所有客户 OrderDate 也将是一个 DateTime 就像是 SELECT DISTINCT CustomerID FROM TableNa
  • Java 有没有支持一年中的季度和星期的 DateTime 库? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我目前正在使用 jodaTimeDateTime http joda time sourceforge
  • 将日期时间字符串转换为 Utc

    如何将日期时间字符串转换为 GMT 中的 utc 时间格式 var x 02 01 2017 10 00 var z DateTime ParseExact x ddd dd MMM yyyy HH mm ss GMT CultureInf
  • 如何使 onEdit() 触发函数应用于多个工作表

    我正在处理一张 Google 表格 我有一个脚本可以填充column B当我更新时有时间戳column A在第一个选项卡上 不过 我需要它在第二个选项卡上执行相同的操作 但我无法让它在那里工作 我需要改变什么 我当前使用的脚本是 funct
  • BigQuery:从带有时区的日期时间中提取日期

    我正在尝试返回 BigQuery 中的一列以及从该列中提取的日期开始时间 该列中的值的格式为 11 27 2019 14 40 15 CET 0100 我写了以下代码 SELECT EXTRACT DATE FROM TIMESTAMP s
  • Java SimpleDateFormat时区解析

    我很好奇Java的SimpleDateFormat如何根据设置的时区决定何时增加 减少传递的时间 假设我有一个约会 06 04 2013 然后我将时区设置为离我较远的时区 我在 GMT 5 假设我使用 GMT 8 I call Simple
  • 如何返回 Solidity 中的结构数组?

    我正在为以太坊智能合约设计一个解决方案bidding 用例包括保留名称 例如 myName 并分配给一个地址 然后 人们可以竞标该名称 在本例中为 myName 可以有多个名称发生多次此类出价 struct Bid address bidO
  • 有没有好的、轻量级的、具有良好 UI 的网络日期/时间选择器?

    几个愿望 如果它是基于 jQuery 的 那就最好了 如果它专注于简单的用户界面而不是养眼的东西 更好的 如果它既是日期又是时间选择器 好的 我应该提到的是 我已经查看了使用 Google 可以找到的大多数可用选项 问题不在于官方 jQue
  • 使用日期时间作为文件名并随后解析文件名?

    我正在将文件写入硬盘 文件名是这样构建的 String Format 0 yyyy MM dd hh mm ss txt DateTime Now 例如 文件名是 2010 09 20 09 47 04 txt 现在我想在下拉列表中显示这些
  • ER_TRUNCATED_WRONG_VALUE:日期时间值不正确

    我最近完成了一个研究项目的申请 一切都很好 我剩下的就是将应用程序投入生产 我正在将 MySQL 与 Node js 结合使用 我知道 我们不喜欢这样 但总得有人尝试一下 我有一个套接字 它向 mysql 消息表添加一条聊天消息 其中包含文
  • php - 每月最后一天从公历到波斯日期时间的错误转换

    我想将公历日期时间转换为波斯日期时间 这是我的代码 public function convertToJalali DateTime gregorianDateTime if gregorianDateTime gt year lt 1 g
  • Linq 选择行,其中日期在当月

    我需要获取当月的数据 一直无法找到有效的解决方案 这是我的代码 它为我提供了所需的数据 但我获取的是整整一个月前的数据 而不是当前月份的数据 我选择了两次日期 限制 row gt DateTime Today Addmonths 1 有任何
  • 有效地合并两个数组 - 一个已排序,另一个未排序

    我正在解决一个问题 该问题有一个由 n 个元素组成的排序数组 后跟一个未排序的长度数组 O logn O 平方 n 如何最有效地对整个列表进行排序 在上述两种情况下我应该使用哪种排序 由于将单个元素插入数组并保持其排序是O n 你不可能变得
  • java.time DateTimeFormatter 解析具有灵活的后备值

    我正在尝试将一些代码从 joda 时间移植到 java 时间 JodaTime 可以像这样指定年份的后备值 parser withDefaultYear new DateTime DateTimeZone UTC getYear parse
  • Python strptime 解析没有世纪的年份:假设在今年之前?

    我正在解析 Python 2 7 中的一些日期时间字符串 使用datetime strptime 我想假设某个日期早于现在 但是 strptime 的 y操作员 https docs python org 2 library datetim
  • 如何使用javascript获取像2009-05-29 21:55:57这样的格式化日期时间?

    使用新日期时 我得到如下信息 2009 年 5 月 29 日星期五 22 39 02 GMT 0800 中国标准时间 但我想要的是 xxxx xx xx xx xx xx 格式的时间字符串 虽然在某些情况下它不会填充到两个字符 但它确实达到
  • 现在与出生日期之间的年、月、日、分钟差异

    import datetime birthday datetime datetime 1996 8 15 differnce datetime datetime now birthday This returns a timedelta o
  • 当时间为 00:00 时,Pandas 读取 excel 返回类型对象

    在更新版本的 Pandas 中 我使用的是 1 2 3 当从 Excel 文件读取时间时 时间为 00 00 00 时会出现问题 下面的脚本 其中 filepath 是我的 Excel 文件的路径 其中包含一个标题名为 Time 的列 im
  • 转换位域结构的字节顺序

    我需要将位字段结构从小端架构转换为大端架构 最好的方法是什么 因为如果我只是交换结构元素 字节边界就会出现问题 前结构是 struct unsigned int b1 1 unsigned int b2 8 unsigned int b3
  • Python - 按月对日期进行分组

    这是一个简单的问题 起初我认为很简单而忽略了它 一个小时过去了 我不太确定 所以 我有一个Python列表datetime对象 我想用图表来表示它们 x 值是年份和月份 y 值是此列表中本月发生的日期对象的数量 也许一个例子可以更好地证明这

随机推荐

  • .NET 中的 CoCreateInstance 完全匹配吗?

    我有进程内 DLL COM 服务器 但我选择以 DllSurrogate 身份运行 因此从非托管代码 Delphi 中我有 function TComWrapper GetServer IUnknown begin OleCheck CoC
  • 如何在Android webview中永久保存cookie?

    通过下面的代码 我已经能够保存 cookie 但是一旦我关闭应用程序 cookie 就会消失 这是如何引起的以及如何解决 package com jkjljkj import android app Activity import andr
  • 修复js“脚本错误”

    我在实现一些简单的事情时遇到困难 我有一个 index html 文件http 本地主机 3200 http localhost 3200由 ruby on Rails 编写 它使用 javascript 文件http 本地主机 8000
  • MongoDb 聚合 - 项目值作为键,相应的数组值作为值

    在 mongodb 中 运行聚合后我有一个以下形状的 get 对象 id 1 specificationList key Memory Storage Features values key Internal Storage value 3
  • KeyError:“无法打开属性(无法定位属性:'nb_layers')”

    我有一个Python代码 使用Keras 我没有发布代码 因为代码有点长 而且问题似乎与代码本身无关 这是我遇到的错误 File h5py h5a pyx line 77 in h5py h5a open D Build h5py h5py
  • 在 numpy 中获取日志返回的最有效方法是什么

    构建日志返回序列的最快且最优雅的解决方案是什么 问题主要在于映射一个函数 该函数将第 i 个和第 i 1 个元素作为数组中每个元素的输入 对于函数和简单数组 我可以定义日志返回 如下所示 import numpy as np ar np r
  • 显示哪些与特定模式匹配的文件在 git 分支之间发生了更改

    我想合并两个分支 但在此之前 我想检查文件名以以下字符结尾的所有文件上两个分支之间的更改 twig 是否可能 或者我应该使用一些 bash magic 像git diff name only branch1 branch2 grep twi
  • 为家庭作业选择 Java IDE [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 谁能推荐一个轻量级的 Java IDE 不需要您每次编译和运行程序时都创建新项目 我只想能够打开jav
  • 意外的 身体行为,因为它被孩子的 margin-top 向下推 [重复]

    这个问题在这里已经有答案了 HTML 问题看起来总是那么简单 以至于我几乎觉得问这些问题很尴尬 但不管怎样 我不知道为什么会发生这种情况 在这个小提琴里http jsfiddle net o5ee1oag 2 http jsfiddle n
  • 单击回收器视图

    有谁用过RecyclerView找到了一种方法来设置onClickListener到项目中的RecyclerView 我想过为每个项目的每个布局设置一个监听器 但这似乎有点太麻烦了 我确信有办法RecyclerView聆听onClick事件
  • NodeJS TLS会话ID

    我正在使用 TLS 使用 node js 库创建会话 Node js 是否提供了一种方法来检索已建立的 TLS 连接的会话 ID 它是 openssl 中 SSL ctx 的一部分 不使用 connect express 或geddy 可以
  • WPF 复选框内容不正确

    我的问题是我的复选框内容不显示下划线或 象征 我读过有关RecognizeAccessKey属性 但我无法让它工作 我的列表框如下所示
  • C# 构造函数不能调用自身

    构造函数 Delay vkMessages vkMessages string System DateTime string bool string 无法调用自身 我有另一个类 该类的副本 但它可以工作 我可以添加代码 我如何解决这个问题错
  • 尝试以特殊行为渲染 Threepenny-gui 中的字段

    我想要做的是设置字段 当它们处于焦点时显示详细信息 而当它们不处于焦点时显示摘要 例如 A 当它失去焦点 变得模糊 时 我将值保存在 状态 映射中 然后将该值更改为旧值的函数 即汇总值 b 当它获得焦点时 我用我在地图中保存的旧值替换摘要值
  • Emacs 关于 python 模式函数的默认提示

    在 python 模式下 有一个名为 py execute region 的函数 它将突出显示的代码区域发送到 Python 缓冲区进行评估 评估后 光标位于 Python 缓冲区中 但我希望它保留在脚本缓冲区中 以便我可以继续生成更多代码
  • 如何仅使用 jQuery 垂直调整 DIV 大小 - 无需插件?

    Edit 我把这段代码放在jsbin中 http jsbin com eneru http jsbin com eneru 我试图让用户使用 jQuery 调整 DIV 元素的大小 仅垂直 我读到了有关 jQuery UI 的内容 我尝试了
  • 某些 exe 中的 OpenFileMapping 访问被拒绝

    我有一个程序使用写入变量 CreateFileMapping INVALID HANDLE VALUE NULL PAGE EXECUTE READWRITE 0 sizeof data Local testtest 然后我将 dll 加载
  • 将文件列表传递给 grep

    我有一个文件中的文件列表 该列表很大 并且文件名是非标准的 这意味着 有些文件名包含空格 非 ascii 字符 引号 单引号 所以 通过那个huge不能选择将文件列表作为 grep 参数 因为我不确定我不会超过linux允许的参数长度 我想
  • Debian - /usr/bin/env: 'php\r': 没有这样的文件或目录

    所以当我跑步时 直接讨论问题 yii似乎我从 Debian stretch 中收到了从 Docker 运行的错误 然而当我跑步时 usr bin env php v我得到了正确的输出 没有问题 似乎新行被翻译为字符串时出现问题 我不知道如何
  • 我应该如何存储不同时区事件的数据?

    这是一个概念性问题 因此这里没有代码片段 假设我创建了一个事件数据库 其中一些在纽约 一些在芝加哥 一些在凤凰城 等等 我的服务器的时区设置为纽约 在我看来 为所有这些事件创建 UNIX 时间戳时有两种选择 考虑时区 即 1 月 1 日午夜