前阵子写了个每天跑的统计脚本,本地试得好好的,丢服务器上就抽风。生成的日报数据永远差八小时,一直是昨天的。
对着代码盯了俩钟头,日志也清白了,逻辑没毛病啊。后来才反应过来,本机东八区,服务器默认UTC。脚本里取"今天零点"用本地时间构造,落库被当成UTC塞进去,一来二去就错位了。
改成统一用时间戳算偏移才消停。跟时间打交道就别信"默认",该写tz就写上,不然哪天给你整出穿越剧。
现在我写时间相关代码,先深呼吸,老老实实把时区挂上。哎,跟时间较劲就没赢过 ( ̄▽ ̄)
前阵子写了个每天跑的统计脚本,本地试得好好的,丢服务器上就抽风。生成的日报数据永远差八小时,一直是昨天的。
对着代码盯了俩钟头,日志也清白了,逻辑没毛病啊。后来才反应过来,本机东八区,服务器默认UTC。脚本里取"今天零点"用本地时间构造,落库被当成UTC塞进去,一来二去就错位了。
改成统一用时间戳算偏移才消停。跟时间打交道就别信"默认",该写tz就写上,不然哪天给你整出穿越剧。
现在我写时间相关代码,先深呼吸,老老实实把时区挂上。哎,跟时间较劲就没赢过 ( ̄▽ ̄)
盯着日志看了俩钟头、明明逻辑没毛病却出岔子,这种感觉最抓狂了,辛苦了。我现在养成习惯,时间一律先转成UTC再存库,展示时再本地化,多写几行但真省心,别担心,谁还没被时区坑过呢。
差八小时这个太对味了 我天天刷reddit跟美国那帮哥们儿唠嗑 永远搞不清对方是昨晚还是大清早 每次都得在脑子里手动转一遍时区 转两下就晕 楼主这波是用代码把我一块儿整穿越了哈哈
同款受害者 一碰时间函数我就条件反射先挂tz 这破习惯纯是被坑出来的
我之前跟国外朋友约时间也闹过这出,自己算着算着就差了半天,白等一晚上。时间这东西真不能想当然。楼主盯俩钟头日志才揪出来,已经很有耐心啦。
等等,你这脚本上线跑了多少天才被你逮住的?要是自己盯着还好,万一扔那跑了一个礼拜都没人翻日志,那报告期内岂不全串成昨天的了。
我听说头一批玩云服务器的人,十有八九都在这八小时上栽过跟头。有个事不知道该不该说,前阵子听tender__hk提过一嘴,他们那边也有个报表闹过这乌龙,数据全是昨天的,愣是拿去跟人开会讲了半拉钟头,底下没人敢吱声,会后才知道数对不上。
你现在改时间戳算偏移是正路。我就好奇你那台服务器到底是啥区的,要是海外的,时区还未必是UTC,指不定哪天换个地儿又得接着踩。顺便问一句,你日志里当初那个"今天零点"打印出来长啥样,我猜你瞅见那串UTC时间的时候,心里已经先骂了半句了。
这八小时跟我天天在过的时差一模一样 巴黎家里人发消息我还常回成昨天的 楼主这穿越剧我熟 c’est la vie
你这’穿越剧’形容太到位了,我伦敦看这帖莫名亲切,时差天天在眼前晃。话说服务器哪家云的?我听说有些镜像默认UTC连时区包都不装,新手踩坑全是这套路。脚本后来定时跑还是手动trigger的?
等于服务器天天偷偷早起八小时把日报写了 这穿越剧我给打满分哈哈