2011-11-16 128 views
11

我正在使用dhtmlxscheduler,并将日期发送到django服务器进行处理。Js将日期对象转换为python日期时间

Dhtmlxscheduler为我提供了以下日期的对象,从下面第二行提供了启动的方法:

end_date: Sat Nov 19 2011 01:00:00 GMT-0500 (EST) 
__proto__: Invalid Date 
constructor: function Date() { [native code] } 
getDate: function getDate() { [native code] } 
getDay: function getDay() { [native code] } 
getFullYear: function getFullYear() { [native code] } 
getHours: function getHours() { [native code] } 
getMilliseconds: function getMilliseconds() { [native code] } 
getMinutes: function getMinutes() { [native code] } 
getMonth: function getMonth() { [native code] } 
getSeconds: function getSeconds() { [native code] } 
getTime: function getTime() { [native code] } 
getTimezoneOffset: function getTimezoneOffset() { [native code] } 
getUTCDate: function getUTCDate() { [native code] } 
getUTCDay: function getUTCDay() { [native code] } 
getUTCFullYear: function getUTCFullYear() { [native code] } 
getUTCHours: function getUTCHours() { [native code] } 
getUTCMilliseconds: function getUTCMilliseconds() { [native code] } 
getUTCMinutes: function getUTCMinutes() { [native code] } 
getUTCMonth: function getUTCMonth() { [native code] } 
getUTCSeconds: function getUTCSeconds() { [native code] } 
getYear: function getYear() { [native code] } 
setDate: function setDate() { [native code] } 
setFullYear: function setFullYear() { [native code] } 
setHours: function setHours() { [native code] } 
setMilliseconds: function setMilliseconds() { [native code] } 
setMinutes: function setMinutes() { [native code] } 
setMonth: function setMonth() { [native code] } 
setSeconds: function setSeconds() { [native code] } 
setTime: function setTime() { [native code] } 
setUTCDate: function setUTCDate() { [native code] } 
setUTCFullYear: function setUTCFullYear() { [native code] } 
setUTCHours: function setUTCHours() { [native code] } 
setUTCMilliseconds: function setUTCMilliseconds() { [native code] } 
setUTCMinutes: function setUTCMinutes() { [native code] } 
setUTCMonth: function setUTCMonth() { [native code] } 
setUTCSeconds: function setUTCSeconds() { [native code] } 
setYear: function setYear() { [native code] } 
toDateString: function toDateString() { [native code] } 
toGMTString: function toGMTString() { [native code] } 
toISOString: function toISOString() { [native code] } 
toJSON: function toJSON() { [native code] } 
toLocaleDateString: function toLocaleDateString() { [native code] } 
toLocaleString: function toLocaleString() { [native code] } 
toLocaleTimeString: function toLocaleTimeString() { [native code] } 
toString: function toString() { [native code] } 
toTimeString: function toTimeString() { [native code] } 
toUTCString: function toUTCString() { [native code] } 
valueOf: function valueOf() { [native code] } 
__proto__: Object 

什么是选择这些的toString方法之一,然后解析它的蟒蛇服务器上的最简单的方法使用datetime.strptime()来创建一个python datetime对象?

简单的toString方法返回我的格式的日期时间:

Sat Nov 19 2011 00:00:00 GMT-0500 (EST) 

尝试不同的格式的指令不成的。

即:

datetime.strptime("Sat Nov 19 2011 00:00:00 GMT-0500 (EST)", "%a %b %d %Y %H:%M:%S %Z") 
---> unconverted data remains: -0500 (EST) 

和:

datetime.strptime("Sat Nov 19 2011 00:00:00 GMT-0500 (EST)", "%a %b %d %Y %H:%M:%S %z") 
---> ValueError: 'z' is a bad directive in format '%a %b %d %Y %H:%M:%S %z' 

回答

12

toUTCString()给出:

"Tue, 22 Nov 2011 06:00:00 GMT" 

这就是parsible有:

datetime.strptime("Tue, 22 Nov 2011 06:00:00 GMT", "%a, %d %b %Y %H:%M:%S %Z") 
5

它看起来像你正在得到像一个普通的JavaScript日期对象。在这种情况下,最简单的方法可能是使用getTime方法获取时间戳。它应该返回类似1321463229215,这只是一个毫秒的时间戳。

日期时间的fromtimestamp预计秒时间戳,所以只是通过1000.0除以时间戳和你去好

from datetime import datetime 
datetime.fromtimestamp(1321463229215/1000.0) 
+2

不幸的是,该方法在几秒钟后返回毫秒单位。即:小时:分钟:秒钟:milleseconds。 – TheOne

+1

向NT3RP的帖子添加了一个编辑,将getUTCMilliseconds更改为getTime,并将时间戳记除以1000.0,因为fromtimestamp需要以秒为单位的时间戳,而不是毫秒。 – Andrew

1

尝试使用中的python-dateutilPIP安装python-dateutil

import dateutil.parser as dt 
date_time_obj = dt.parse("Tue, 22 Nov 2011 06:00:00 GMT") 

date_time_obj将是日期时间对象

相关问题