传输与存储的时间戳只应该是UTC时间、展示时间时必须指定时区,这个两个原则同等重要
遵守了这两个原则,就不会受系统时区设置的影响
=========================================================
先理清时间与时区的基础概念:
时间的存储值(UTC long) + 时区 -->转换成--> 时间的表现值(local string)
同时纠正一个经常有人犯的错误,把这个值用来交换: 时间的存储值(UTC long) + 时区 = 时间的本地值(local long)
传输与存储时间值的时候local long是一个不应该存在的概念,一个引起混乱的罪魁,此点切记!
在交换时间数据的时候,如果时区不重要或者相同,那么交换时间的存储值还是交换时间的表现值是等效的,如果双方对时区敏感(需要展现不同时区的表现值),那么引起混乱的原因通常是直接交换时间的表现值(local string)或者时间的存储值,却不交换时区值。
实例1:
比如两个国家的App提交日志,如果其时区并不重要,那么提交时间在程序运维者时区的表现值(string),是一个比较简洁方便的方案。而如果其时区很重要,那么如果不提交时区值,不论是只提交时间的存储值(UTC long),还是只提交任何一个时区的表现值(string),都是没有办法完美实现我们的需求的,简单的讲,如果出现混乱或者矛盾,那么就不要纠结传啥值啦,简单的加上时区字段就可以了。
实例2:
服务器时区的设置不影响服务器时间存储值,只影响时间的表现值。对于服务多个国家的服务器,你把时区设置成任何一个国家的时区都会造成某些人的纠结,但这并没有什么关系,重要的是,你不要把应该保存成时间+时区两个字段的值只保存成一个字段,引起问题的是数据的降纬,而不是服务器时区设置造成的。作为时间表现值的服务器时区设置,应当设置成服务器运维者所在的时区,而非服务器所服务的用户的众多国家中的任何一个,同理也不应当是UTC。(你有两个孩子,要分两个梨,一个大一个小争执不下,难道你会将两个梨子都给旁边看热闹的小孩--UTC来解决这个问题么?)
相关推荐
### 服务器端世界时间(UTC)转换客户端时区时间 #### 概述 在现代互联网应用中,服务器通常需要处理来自全球各地用户的请求,并且在显示时间信息时必须考虑到用户所在的地理位置及其对应的时区差异。例如,对于一个...
为了保证时间的正确,应该把时区设置正确。设置方法包括手动设置时区和使用图形化命令设置。 Linux 系统中时区和时间的修改对系统的运行和维护至关重要。正确设置时区和时间可以确保系统的稳定运行和正确性。
在IT领域,系统时间通常设置为UTC,因为这样可以避免由于地理位置不同导致的时区问题。服务器和应用程序通常会使用UTC进行时间记录,然后根据需要转换成本地时间显示。在编程语言中,处理时间时,UTC通常作为通用...
这种工具对于处理跨时区的数据交换、分析和存储非常有用,尤其是在需要精确时间记录的场景下,例如金融交易、航空调度或者网络服务器日志分析。 首先,让我们详细了解一下"yyyy-MM-dd HH:mm:ss"这种日期时间格式。...
在实际应用中,这种转换可能涉及到复杂的业务逻辑,例如,当记录事件发生的时间时,如果服务器和用户不在同一时区,需要将用户的时间转换为UTC时间以便存储和比较。反之,当展示数据时,又需要将UTC时间转换为用户的...
总之,处理服务器时区错误需要对数据库配置、JDBC连接参数以及时间区域概念有深入了解。正确设置这些参数可以避免时区不一致带来的问题,保证系统正常运行和数据一致性。在开发和运维过程中,时刻关注时区处理,可以...
通过修改这些文件,可以改变Java应用程序对时区的识别,从而确保WebLogic服务器显示的时间与系统时间相匹配。 #### 注意事项 - 在执行上述操作时,请确保备份所有原始文件,以防万一需要恢复到初始状态。 - 如果你...
总结起来,UTC2GMT V1.0是针对UTC和GMT时间转换需求而设计的实用工具,尤其适用于需要处理跨时区时间信息的IT专业人士。理解UTC和GMT的差异及其在不同场景中的应用,将有助于我们在全球化的信息技术环境中更好地工作...
在使用计算机时,有时会遇到一些与时间管理相关的困扰,比如无法修改系统时区、虚拟机中的时区设置问题,以及像《炉石传说》这样的应用程序因时区未正确设置而导致的启动黑屏等问题。"修复系统时间的时区.reg"文件...
UTC(Universal Time Coordinated)是国际无线电通信场合的统一时间标准,分为 24 个时区,每个时区都有自己的本地时间。GMT(Greenwich Mean Time)是位于英国伦敦郊区的皇家格林尼治天文台的标准时间,基本等同于 ...
本文将详述如何处理HP服务器BIOS中的时间设置问题,以及如何通过正确的配置避免潜在的时区或时间同步问题。 标题提及的"HP服务器BIOS时间设置确认借鉴"涉及到的是在HP Gen9服务器上调整系统时间的方式,这是服务器...
比如,可以计算两个时间点之间相差的天数,或者设置定时器基于特定时间执行任务。 6. **源码分析** 在压缩包中的“易语言取现行时间与世界时间源码”文件,应当包含了实现上述功能的详细代码。通过阅读和理解这些...
3. **用户时区设置**:在处理用户时间时,应考虑用户的时区,而不是硬编码为服务器或开发者的时区。 4. **时间转换**:使用`TimeZone`的`getOffset()`方法进行时间转换,或使用Java 8的`ZonedDateTime`进行更复杂的...
服务器时间和客户端时间可能位于不同的时区,因此在处理时间时可能需要进行时区转换。JavaScript的`Date`对象提供了`getTimezoneOffset()`方法来获取相对于UTC的分钟偏移,以及`toUTCString()`、`toISOString()`等...
在实际应用中,例如在服务器日志分析时,可能需要将UTC时间戳转换为本地时间以便于理解事件发生的具体时刻。另一方面,在处理通过网络发送的Base64编码信息时,可能需要解码以查看原始数据内容。这款小工具正是为了...
可以使用`date -u`命令设置UTC时间,或者`date`命令设置本地时间。 8. **安全考虑**:NTP服务器可能会成为DOS攻击的目标,因此确保只允许信任的来源进行同步。在`/etc/ntp.conf`中,可以使用`restrict`指令限制对...
在C#编程中,获取北京时间是一项常见的需求,特别是在开发Windows应用程序时,比如WinForm应用,可能需要获取远程服务器或网络上的准确时间,而非本地计算机的时间。以下是一个详细的介绍,关于如何使用C#来获取北京...
例如,在中国大陆服务器上设置上海时区,可以使用以下命令: ```bash # cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime ``` 这个命令会将`/usr/share/zoneinfo/Asia/Shanghai`中的时区文件复制到`/etc/...
例如,当服务器位于一个时区,而用户在另一个时区时,数据交换需要统一的时间标准。这就是UTC的作用,因为它避免了因夏令时或时区差异带来的混乱。"UTC2Time"工具就是为了解决这个问题而设计的,它允许用户方便地在...