我有以下日期:
25-JAN-18 01.31.02 AM +00:00
,并且正在尝试转换为与Postgres兼容的timestamp with time zone
格式。
我正在尝试将以下代码转换为兼容格式:
document.getElementById("parsedDate3").innerHTML = moment("25-JAN-18 01.31.02.923526 AM +00:00 ", "d-MMM-YY hh.mm.ss A Z");
但是我得到的输出是
Mon Jan 01 2018 02:31:02 GMT+0100
有人可以帮我吗?
答案 0 :(得分:1)
您使用的小写字母d
是一周中的一天,从0(星期日)到6(星期六)。
请改用大写的D
,该字母是每月的一天。
请注意,Moment的格式标记与其他库和语言中的格式标记略有不同,因此请仔细检查文档中的图表。
也:
在您的代码中,秒后还有6位数字。如果您需要考虑这些因素,请使用SSSSSS
。否则,它们将被忽略。
您不应直接将Moment对象分配给HTML元素的innerHTML
属性。相反,请首先在Moment对象上调用.format()
函数以生成字符串。您可以选择向该函数传递参数,以控制输出格式。
答案 1 :(得分:0)
您可以在PostgreSQL中简单地完成它:
class Add():
def __init__(self, a, b):
self.a = a
self.b = b
#@dask.delayed
def calc(self):
return self.a+self.b
a = dask.delayed(1)
b = dask.delayed(2)
add = Add(a, b)
add.calc().compute()
这将适用于PostgreSQL v11或更高版本。
SELECT to_timestamp('25-JAN-18 01.31.02.923526 AM +00:00', 'DD-MON-YY HH.MI.SS.US AM TZH:TZM');
to_timestamp
-------------------------------
2018-01-25 02:31:02.923526+01
(1 row)
的早期版本尚无法解析时区信息。
如果您需要在9.6上运行它,并且知道时区始终为to_timestamp
,则可以简单地在格式字符串中省略+00:00
。