Python到JavaScript的unix时间转换
在JavaScript中:Python到JavaScript的unix时间转换,javascript,python,datetime,Javascript,Python,Datetime,在JavaScript中: 新日期(2014年5月1日).getTime() //结果:1401561000000 使用python时: 导入时间 导入日期时间 time.mktime(datetime.datetime(2014,5,1).timetuple()) #结果->1398882600.0 如何将python时间转换为JavaScript unix时间戳?JavaScript的纪元时间从其月份索引0开始。因此,如果希望在JavaScript中获得April,则输入的月份是错误的
新日期(2014年5月1日).getTime()
//结果:1401561000000
使用python时:
导入时间
导入日期时间
time.mktime(datetime.datetime(2014,5,1).timetuple())
#结果->1398882600.0
如何将python时间转换为JavaScript unix时间戳?JavaScript的纪元时间从其月份索引0开始。因此,如果希望在JavaScript中获得April,则输入的月份是错误的 要修复JavaScript使其与Python相同,请执行以下操作:
var time = new Date(2014, 4, 1).getTime()/1000;
// time = 1398916800
让我们比较两个结果:
1401561000
–2014年5月31日18:30:00 UTC(请注意,getTime()
提供毫秒数,因此需要除以1000)1398882600
–30.04.2014 18:30:00 UTC0
(0=一月)开始,而在Python中,它从1
(1=一月)开始。这就是一个月补偿的来源
第二个问题是时区问题。您的本地时间似乎是UTC-05:30,这就是偏移量的来源。当您用两种语言创建日期时,您总是使用本地时间,因此您的时区偏移量会被考虑在内。如果要输入UTC日期,也可以这样做。在JavaScript中,由于以下原因,它非常简单:
Date.UTC(2014年5月1日)/1000//1401580800
日期:UTC(2014年4月1日)/1000//1398902400
然而,在Python中,它有点复杂,因为默认情况下,datetime
对象不知道时区,但time.mktime
为传递的元组假定本地时间。要解决此问题,您可以通过明确指定时区或自己执行计算,使datetime
对象感知:
>datetime.datetime(2014,6,1,tzinfo=timezone.utc).timestamp()
1401580800
>>>datetime.datetime(2014,5,1,tzinfo=timezone.utc).timestamp()
1398902400
>>>(datetime.datetime(2014,6,1)-datetime.datetime(1970,1,1))/datetime.timedelta(秒=1)
1401580800
>>>(datetime.datetime(2014,5,1)-datetime.datetime(1970,1,1))/datetime.timedelta(秒=1)
1398902400