Python 将时间戳转换为postgres时间戳

Python 将时间戳转换为postgres时间戳,python,postgresql,timestamp,Python,Postgresql,Timestamp,目前我的时间戳格式如下: 2018-04-02T09:00:00+09:30 我如何将上面的时间戳转换为适合postgres的时间戳列,如下所示 2018-04-02 09:00:00 +09.30 另外,在加载到postgres表之前,如何使用python首先转换xml时间戳?如果您知道您将始终以该格式获取数据,您可以执行以下操作: >>> a = "2018-04-02T09:00:00+09:30" >>> >>> b = a.r

目前我的时间戳格式如下:

2018-04-02T09:00:00+09:30
我如何将上面的时间戳转换为适合postgres的时间戳列,如下所示

2018-04-02 09:00:00 +09.30

另外,在加载到postgres表之前,如何使用python首先转换xml时间戳?

如果您知道您将始终以该格式获取数据,您可以执行以下操作:

>>> a = "2018-04-02T09:00:00+09:30"
>>> 
>>> b = a.replace('T', ' ').replace('+', ' +')
>>> b
'2018-04-02 09:00:00 +09:30'
这是丑陋的,但它的工作


将输入解释为日期,然后以所需格式打印总是比较安全的。

这不需要任何转换,它是常规格式

您会注意到它正在UTC中存储它。这就是你想要的。从

对于带有时区的
时间戳
,内部存储的值始终以UTC(通用协调时间
,传统上称为格林威治标准时间,GMT)为单位。指定了明确时区的输入值将使用该时区的适当偏移量转换为UTC。如果输入字符串中未说明时区,则假定它位于系统的
时区
参数指示的时区中,并使用时区的偏移量转换为UTC

当输出带有时区值的
时间戳时,它总是从UTC转换为当前时区,并显示为该时区中的本地时间。要查看另一时区中的时间,请更改时区或使用
AT time zone
构造(参见第9.9.3节)


我可以选择不存储到utc吗?只需像这样存储“2018-04-02 09:00:00+09:30”?此时间戳已从转换而来UTC@Derek除了UTC,您永远不会将时间戳存储在任何其他格式中。所有时间戳均标准化为UTC。然后,它们将显示在应用程序中所需的任何时间戳中(假设列类型为带时区的时间戳)。例如,在
psql
中,您可以使用
TimeZone
配置变量设置时间戳插入的时区。谢谢您的建议!但是,我无法将其存储为utc格式,因为我已经有一个存储utc格式的列。因此,我需要存储这个时间戳,因为它没有timezone@Derek问问题,因为你不了解一些事情。(或阅读上述文件)。谢谢您的建议!你能简单地解释一下.replace(“+”,“+”)的作用吗?它用“+”替换“+”,在“+”之前添加一个额外的“空格”。
select timestamp with time zone '2018-04-02T09:00:00+09:30';
      timestamptz       
------------------------
 2018-04-01 18:30:00-05
(1 row)