消失的零点

(注:转自本人于2018-01-07 11:22:19博客)
上午9点多醒来收到一封kettle数据同步失败的邮件,于是起来准备看下原因,报错代码为:Cannot parse “1990-04-15”: Illegal instant due to time zone offset transition(Asia/Shanghai) ,字面意思即由于Asia/Shanghai时区设置,无法解析日期1990-04-15。真是有意思。
后面查资料得知,1990-04-15是从1990-04-15 01:00:00 开始的,而非1990-04-15 00:00:00 ,故我们的时区解析不了这个日期。90后该天生人大概也想不到由于自己的生日带给程序员的烦恼吧,哈哈。那么后面怎么解决呢,其实也不麻烦,就是使用世界标准时间+8. 具体实现即在spoon脚本 jvm运行参数中添加 -Duser.timezone=utc/GMT+8。
修改之后重进kettle同步之后,进入oracle数据库查看该表,果然,丢失的零点 - 申沉 - 申沉BLog。另外,与此日期一样的还有1989-04-16。
另附天文知识丢失的零点 - 申沉 - 申沉BLog:
GMT 是 Greenwich Mean Time 的缩写,译为中文为“格林威治标准时间”或“格林尼治标准时间”,直译的话,可译为“格林威治平时”或“格林尼治平时”。这里的格林威治位于英国伦敦东南方向的泰晤士河畔,美国也有个格林威治镇,不过与时间没关系。

UTC 是 Coordinated Universal Time 的缩写,译为中文为“世界标准时间”,直译的话,可译为“协调通用时间”或“协调世界时间”。目前来说也就是指 GMT 时间。为什么说目前就是指 GMT 时间呢?因为本初子午线(子午线即经线,本初子午线即 0 度经线)其实穿过的是沙特阿拉伯西边的麦加,而不是英国的格林威治。当时英国皇家学会暂时确定格林威治为本初子午线的穿过点﹐加之英国正是兴旺发达时期,全世界就将错就错,用到现在。说不定哪天改为麦加时间为标准时间也不是没有可能。所以我们一般使用 UTC,而不是 GMT。

PDT 是 Pacific Daylight Time 的缩写,译为中文为“太平洋夏令时间”,比 UTC 时间晚 7 小时。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值