Konvertieren string in timestamp-hive -
Habe ich den string mit der timestamp-Wert wie "2013-02-02T04:04:11.240-4:00".
Also Ziel ist die Umwandlung in den timestamp-format wie 2013-02-02 04:04:11. Wie kann ich dies tun.
Dieser Befehl funktioniert
from_unixtime(unix_timestamp(substr('20130502081559999',1,14), 'yyyyMMddHHmmss'))
aber wenn ich versuche, so etwas wie dieses es Fehler geben, die mit 'T'
from_unixtime(unix_timestamp(substr('2013-05-02T08:15:59.999-4:00',1,19), 'yyyy-MM-ddTHH:mm:ss'))
InformationsquelleAutor Varun Gupta | 2013-10-14
Du musst angemeldet sein, um einen Kommentar abzugeben.
Für alles, was in Ihrem string-außer Zeitzonen-offset, dieses Muster funktioniert:
Dem Muster für das " = SimpleDateFormat sind hier.
Zusätzliche Muster XXX sollte in der Lage, Ihre time zone offset. Aber wie gesagt auf auf dieser Seite und auf dieser Seite, die X-Muster wurde in Java 7.
Wenn Sie mit einer früheren Java-version (wie bei mir - meine Cloudera QuickStart VM verwendet 1.6.0_32), müssen Sie einige zusätzliche manipulation, diese zu arbeiten. Ein Weg dies zu tun ist:
Den innersten regexp_replace Streifen der Doppelpunkt (:) aus der time-zone-offset. Die äußerste regexp_replace pads Zeitzonen-offset mit einer zusätzlichen null, falls erforderlich (d.h. -4:00 wird -0400, was mit der Z-Muster. Beachten Sie, dass -400 nicht mit dem Z-pattern).
InformationsquelleAutor Mike W.