传输与存储的时间戳只应该是UTC时间、展示时间时必须指定时区,这个两个原则同等重要
遵守了这两个原则,就不会受系统时区设置的影响
=========================================================
先理清时间与时区的基础概念:
时间的存储值(UTC long) + 时区 -->转换成--> 时间的表现值(local string)
同时纠正一个经常有人犯的错误,把这个值用来交换: 时间的存储值(UTC long) + 时区 = 时间的本地值(local long)
传输与存储时间值的时候local long是一个不应该存在的概念,一个引起混乱的罪魁,此点切记!
在交换时间数据的时候,如果时区不重要或者相同,那么交换时间的存储值还是交换时间的表现值是等效的,如果双方对时区敏感(需要展现不同时区的表现值),那么引起混乱的原因通常是直接交换时间的表现值(local string)或者时间的存储值,却不交换时区值。
实例1:
比如两个国家的App提交日志,如果其时区并不重要,那么提交时间在程序运维者时区的表现值(string),是一个比较简洁方便的方案。而如果其时区很重要,那么如果不提交时区值,不论是只提交时间的存储值(UTC long),还是只提交任何一个时区的表现值(string),都是没有办法完美实现我们的需求的,简单的讲,如果出现混乱或者矛盾,那么就不要纠结传啥值啦,简单的加上时区字段就可以了。
实例2:
服务器时区的设置不影响服务器时间存储值,只影响时间的表现值。对于服务多个国家的服务器,你把时区设置成任何一个国家的时区都会造成某些人的纠结,但这并没有什么关系,重要的是,你不要把应该保存成时间+时区两个字段的值只保存成一个字段,引起问题的是数据的降纬,而不是服务器时区设置造成的。作为时间表现值的服务器时区设置,应当设置成服务器运维者所在的时区,而非服务器所服务的用户的众多国家中的任何一个,同理也不应当是UTC。(你有两个孩子,要分两个梨,一个大一个小争执不下,难道你会将两个梨子都给旁边看热闹的小孩--UTC来解决这个问题么?)
相关推荐
世界时间和本地时间的转换
SQL Server 本地时间和UTC时间的相互转换的代码,需要的朋友可以参考下。
一个适用于Discord服务器的简单时区漫游器。 允许用户设置时区,然后在适当时被动地记下时区。 命令: t!time 以查看特定用户或特定位置的当前时间。 t!timein 以查看特定位置的当前时间。 t!set 来设置您自己的...
指的是经度0度上的标准时间,我国日常生活中时区以首都北京所处的东半球第8区为基准,统一使用东8区时间(俗称北京时间),比UTC要早8个小时,服务器的时区设置也遵照此标准,因此对应过来timestam
目录给定日期和任何时区,返回具有等效UTC时间的Date 从UTC日期获取表示给定时区中本地时间的日期/时间获取时区和UTC时间之间的偏移量(以毫秒为单位) -在全时区支持下扩展date-fns/format 可用于从包含偏移量或...
先来举个例子,我们现在所在的时区是+8,那么服务器运行以下脚本返回的时间应该是这样的:当前时间假定是2013-03-14 12:15:27复制代码 代码如下:echo date(‘Y-m-d H:i:s’); #与date(‘Y-m-d H:i:s’ time());等效...
1.购买了VPS,CentOS系统,发现服务器时间与北京时间往往不一致,存在时差。 [clive@server workspace]$ date 2018年 05月 30日 星期三 02:02:47 UTC 1.可以执行tzselect命令按提示更换时区,依次选择5-Asia,9-...
跳转到:—— ezTime,一个无时无刻的Arduino库* Rop Gonggrijp撰写 ... 然后,我希望它显示本地时间,因此我需要让用户设置UTC与本地时间之间的偏移量。 到现在为止还挺好。 然后我想起了夏时制的来临时
根据您设备的语言环境设置,所有时间都在您当地的时区(英国夏令时)中。 哦,它也有一个浅色/深色主题切换器。 安装 都是静态的香草HTML / CSS / JS。 克隆它并在本地Web服务器上运行它。 我正在使用 。 贡献 拉取...
该函数可以从时间服务器“ http://time.is/UTC ”获取当前的协调世界时,并将其作为日期序列号(datenum)返回。 用户可以指定时区。
配置Linux Web服务器 该项目说明了如何对Linux服务器进行基准安装并准备好承载Web应用程序。...将本地时区配置为UTC 安装并配置Apache以提供Python mod_wsgi应用程序 安装和配置PostgreSQL:不允许远
塞内卡BBB Seneca BigBlueButton 集成项目 在 Ubuntu 12.04 上设置数据库 运行这些命令安装mysql(注意安装mysql服务器时设置的密码) ... 我们以 UTC 存储事件预定日期和时间,以解决全球时区问题。
因此,joda-time-mybatis将所有日期设置为UTC(对于Joda Instants,不适用于Joda部分课程) 为了获得一致的结果,您的JVM应该 在UTC中运行(-Dtimezone = UTC) 与数据库服务器处于同一时区 例子 SQL(在这种情况...
→EddieBot的功能通过描述和社交链接设置/获取用户简介时区,侦听包含UTC下午1:30的消息,并回复常见时区翻译行为守则每日站立消息的格式一致帮助显示可用命令列表会员角色奖励获取有关给定主题的资源提示服务器状态...
设置服务器的时区(用于日末计算),默认为UTC 时间解析 时间解析器允许使用多种格式来指定提醒时间。 目前,不同的参数无法合并。 • y(ears) • m(onths) • w(eeks) • d(ays) • h(ours
9)关于CVSNT服务器时区(时间戳)始终是UTC 这个问题找了半天,查了官方很多资料始终没有找到明确的说明。 可以这么理解,应该是CVSNT处于Intelnet运作模式,需要统一的 标准时区来定义时间,这点希望在之后的版本...
将时区设置为utc 注册罗尔 添加塔回购 安装必需的yum软件包 将ssh密钥放在服务器上 下载,解压缩并安装塔 配置塔 验证塔是否已启动 申请牌照 安装系统pip软件包 安装塔式venv pip软件包 设置ipv4 tcp保持活动
动作设置UTC时区使用正确的cgroup选项设置启动cmdline文件创建新用户:kube 启用无密码的sudo 添加公共ssh密钥将SSH服务器配置为仅基于密钥的身份验证安装Rancher的K3s Kubernetes发行版要求(显然)一个或多个...
在前面文章中,有提到过 mysqldump 备份文件中记录的时间戳数据都是以 UTC 时区为基础的,在筛选恢复单库或单表时要注意时区差别。后来再次查看文档,发现 tz-utc、skip-tz-utc 参数与此有关,本篇文章我们一起来看...