use*_*616 3 django postgresql timezone postgresql-9.1
在Django的文档设置时区的可用选项的列表时区的实际上是时区Postgres的参数字符串。因此,似乎Django使用Postgres来获取时间。
如果是这样,那么问题就在于,IST既用来表示印度和以色列的标准时间,而postgres使用IST来表示以色列的标准时间(可能会混淆世界六分之一的人口),并且印度标准时间没有时区字符串。
不仅如此,Postgres还错过了尼泊尔(GMT + 5:30)和太平洋其他一些国家的时区。
那么,有什么方法可以在Postgres或Django中设置自定义时区字符串(例如,印度的GMT + 5:30,尼泊尔的GMT + 5:45等)?
对于印度:
SELECT now() AT TIME ZONE 'Asia/Calcutta';
SELECT now()::timestamp AT TIME ZONE 'Asia/Kolkata';
SELECT now()::timestamp AT TIME ZONE '5:30';
Run Code Online (Sandbox Code Playgroud)
对于尼泊尔:
SELECT now()::timestamp AT TIME ZONE 'Asia/Katmandu';
SELECT now()::timestamp AT TIME ZONE 'NPT';
Run Code Online (Sandbox Code Playgroud)
要为整个会话设置时区:
SET time zone 'Asia/Calcutta';
Run Code Online (Sandbox Code Playgroud)
重置它(到postgresql.conf中设置的时区:
RESET time zone;
Run Code Online (Sandbox Code Playgroud)
在系统视图中查找更多信息,pg_timezone_names然后pg_timezone_abbrevs
SELECT *
FROM pg_timezone_names
WHERE utc_offset BETWEEN '05:00:00' AND '06:00:00'
ORDER BY utc_offset;
SELECT *
FROM pg_timezone_abbrevs
WHERE utc_offset BETWEEN '05:00:00' AND '06:00:00'
ORDER BY utc_offset;
Run Code Online (Sandbox Code Playgroud)
PostgreSQL关于AT TIME ZONE构造的手册。关于时区。
| 归档时间: |
|
| 查看次数: |
4102 次 |
| 最近记录: |