TDEngine时区相关概念
阅读数:475 评论数:0
跳转到新版页面分类
应用软件
正文
先说结论:客户端的timezone=UTC-8
一、TDEngine中时间
1、内部用时间戳表示日期时间,以标准的Unix元年时间(UTC时区 1970-1-1 0:0:0)为原点。
2、在写入时,如果SQL中是本地日期时间格式,TDengine客户端使用当前生效的timezone配置,将SQL中的日期转换为timestamp,同时支持使用RFC-3339格式的日期时间进行写入。
3、查询时,客户端根据当前生效的timezone配置,将TDengine中存储的timestamp转换为日期时间格式进行显示。
二、时区相关概念
一种表示日期时间的标准格式,是带时区信息的格式。
例如:
国际标准ISO 8601,是国际标准化组织的日期和时间的表示方法。
(1)ISO8601日期格式
YYYY-MM-DDThh:mm:ss[.mmm]TZD
2018-05-11T06:25:05.578Z
T 代表日期和时间的连接符
TZD: 表示时区指示符,可以是Z或+hh:mm或-hh:mm,Z 表示是 UTC 时间,+或-
表示距离UTC时区多远。
(2)ISO8601持续时间格式
P(n)Y(n)M(n)DT(n)H(n)M(n)S
P是持续时间指示符,始终放置在持续时间的开头位置
T表示时间元素开始的指示符
n为数值
符号 | 含义 |
---|---|
Y | 年 |
M | 月 |
D | 日 |
W | 星期 |
H | 时 |
M | 分 |
S | 秒 |
P3Y8M5DT12H30M6S
表示的持续时间为:三年八个月五天,十二小时三十分钟六秒。
P1Y 一年
P1M 1月
P1D 1天
PT1H 1小时
PT1M 1分钟
PT60s 60秒
与ISO 8601时区定义相反, 在ISO 8601时区格式中,负号表示区域位于UTC(格林威治以西)之后,而正号表示区域位于UTC之前(格林威治以东),可能与POSIX在美国开发有关。
$ TZ=UTC-8 date +'%Z %z'
UTC +0800
$ TZ=UTC8 date +'%Z %z'
UTC -0800
$ TZ=FOO-8 date +'%Z %z'
FOO +0800