在我的数据集中,我有 Unix 时间戳中的日期。我想将它们转换为 Apache Pig 中的日期时间。为此我可以使用ToDate()
功能如所描述here。不过我知道我的 Unix 时间戳是 GMT / UTC,但是使用转换ToDate()
将导致我当地的时区。我不明白如何在从 Unix 时间戳转换时在此函数中指定时区。我不想在转换后手动调整日期时间,因为这对夏令时来说是一个巨大的痛苦。希望有人有一个好的建议,每一个帮助将不胜感激。
这里有一个例子:
ToString( ToDate( (long)'1417145524000'), 'yyyy-MM-dd hh:mm:ss' )
结果是 (2014-11-28 04:04:32) 这是 CET 的时间,但是我希望这是 GMT 的 (2014-11-28 03:04:32) 。
这就是您正在寻找的:
ToDate(userstring, format, timezone)
https://pig.apache.org/docs/r0.11.1/func.html#to-date
时区刺痛:http://joda-time.sourceforge.net/timezones.html
埃德温评论后:
在这种特定情况下,您可以执行以下操作:
ToDate(ToString(ToDate((long) ts), 'yyyy-MM-dd hh:ss:mm'), 'yyyy-MM-dd hh:ss:mm', 'timezone')
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)