给定这样的字符串:'2015年11月23日07:00:10563-04:00'我正在尝试确定UTC日期/时间,我希望它是:'2015-11-23 11:00:10.5630000'
我尝试过以下几种:
SELECT sys_extract_utc(
to_timestamp_tz('2015-11-23T07:00:10.563-04:00',
'yyyy-mm-dd"T"hh24:mi:ss.FF TZH:TZM')
)
FROM DUAL;
但这产生了一个结果:
2015/11/23 03:00:10.563000000
即使我将时区偏移量更改为正,也会得到相同的结果。我一定是误解了什么,所以非常感谢你的帮助。
小数秒和时区小时之间没有空格。所以从你的模式中去掉空格,它就会得到想要的结果。
SQL> SELECT sys_extract_utc(to_timestamp_tz('2015-11-23T07:00:10.563-04:00', 'yyyy-mm-dd"T"hh24:mi:ss.FFTZH:TZM'))
FROM DUAL;
SYS_EXTRACT_UTC(TO_TIMESTAMP_TZ('2015-11-23T07:00:10.563-04:00','YYYY-MM-DD
---------------------------------------------------------------------------
23-NOV-15 11.00.10.563000000 AM
修复了它-"……hh24:mi:ss.FF TZH:TSM"之间的空格字符导致了问题。
这现在非常有效:
SELECT sys_extract_utc(to_timestamp_tz('2015-11-23T07:00:10.563+04:00', 'yyyy-mm-dd"T"hh24:mi:ss.FFTZH:TZM')) FROM DUAL;