带有特定格式时区的 db 日期时间

Posted

技术标签:

【中文标题】带有特定格式时区的 db 日期时间【英文标题】:db date time with timezone in a specific format 【发布时间】:2016-02-04 16:49:07 【问题描述】:

我正在尝试使用以下格式的 sql 查询来获取数据库日期和时间 “2016-01-26T12:07:41-08:00”

从 dual 中选择 systimestamp 给了我类似的价值 2016-02-03 10:39:29.099545 -8:00

那么正确的查询应该是什么

【问题讨论】:

【参考方案1】:

我想这就是你所追求的:

select to_char(systimestamp, 'yyyy-mm-dd"T"hh24:mi:ssTZH:TZM') time_stamp
from   dual;

TIME_STAMP                                         
---------------------------------------------------
2016-02-04T12:20:33-05:00   

【讨论】:

注意TZR 表示“时区区域名称”。这可以是-08:00 之类的字符串,但也可以是US/Pacific。使用 TZH:TZM 始终获取 UTC 的小时:分钟偏移量。 @WernfriedDomscheit 啊,谢谢!我会更新我的答案以包括它;测试的时候有点仓促!【参考方案2】:

我不是 100% 了解您想要的格式,因为您似乎两次给出相同的格式。 但是,如果您想更改 systimestamp 输出的格式,您可以执行以下操作: SELECT TO_CHAR(SYSTIMESTAMP, 'dd/mm/yy') FROM DUAL;

结果: 2016 年 4 月 2 日

【讨论】:

抱歉解决了这个问题 格式 dd/mm/yy 肯定与要求的不同:2016-01-26T12:07:41-08:00 是的 - 很明显这只是一个例子,回复的重点是说明如何重新格式化日期

以上是关于带有特定格式时区的 db 日期时间的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 JavaScript date-fns 库在特定时区格式化日期/时间

检索日期并根据用户时区将其转换为特定时区

如何编写带有时区但没有时间组件的ISO 8601日期

iOS Swift:当字符串包含时区缩写时,如何将特定的日期字符串格式转换为日期对象?

如何将日期时间(在特定时区)转换为纪元秒

如何在 JavaScript 中使用 ISO 8601 格式化带有时区偏移的日期?