2011-09-01 144 views
2

您好我正在嘗試從jQuery UI中獲取日期輸入並將其作爲時間戳記並作爲時間戳記讀取到數據庫中。我知道我可能需要使用strftime,但無法弄清楚如何去做。將字符串日期轉換爲時間戳並返回python

日期就會出現,MM/DD/YYYY

我想將它轉換成標,也將選擇查詢後返回MM/DD/YYYY

回答

6

爲了解析字符串轉換一個datetime.datetime對象:

In [23]: import datetime 
In [29]: datetime.datetime.strptime('9/1/2011','%m/%d/%Y') 
Out[29]: datetime.datetime(2011, 9, 1, 0, 0) 

這裏是描述日期時間/ timetuple /時間戳轉換的方式在Python做了一些圖:

  o------------o 
     |   | dt.datetime.utcfromtimestamp (*) 
     |   |<-----------------------------------o 
     |   |         | 
     | datetime |         | 
     |   | dt.datetime.fromtimestamp   | 
     |   |<----------------------------o  | 
     |   |        |  | 
     o------------o        |  | 
      | ^         |  | 
.timetuple | |         |  | 
      | | dt.datetime(*tup[:6])    |  | 
      v |         |  | 
     o------------o       o------------o 
     |   |-- calendar.timegm (*) -->|   | 
     |   |       |   | 
     |   |---------- time.mktime -->|   | 
     | timetuple |       | timestamp | 
     |   |<-- time.localtime -------|   | 
     |   |       |   | 
     |   |<-- time.gmtime (*)-------|   | 
     o------------o       o------------o 

(*) Interprets its input as being in UTC and returns output in UTC 

因此,將其轉換爲一個時間戳(關於輸入作爲本地日期時間):

In [30]: import time 

In [31]: time.mktime(datetime.datetime.strptime('9/1/2011','%m/%d/%Y').timetuple()) 
Out[31]: 1314849600.0 

要將其轉換爲一個時間戳(關於輸入作爲UTC日期時間):

In [32]: import calendar 

In [33]: calendar.timegm(datetime.datetime.strptime('9/1/2011','%m/%d/%Y').timetuple()) 
Out[33]: 1314835200 

將其轉換回以MM/DD/YYYY格式的字符串:

In [34]: timestamp=1314849600.0 
In [35]: datetime.datetime.fromtimestamp(timestamp).strftime('%m/%d/%Y') 
Out[35]: '09/01/2011' 

或(如果時間戳是相對於UTC):

In [36]: datetime.datetime.utcfromtimestamp(timestamp).strftime('%m/%d/%Y') 
Out[36]: '09/01/2011' 
+0

當我運行這些示例時,出現錯誤消息:NameError:name'wckCalendar'未定義。我在Windows 32位機器上運行Python 3.4.1。有任何想法嗎?謝謝。 – sedeh

+0

錯誤是說Python遇到一個名爲'wckCalendar'的變量,它尚未定義。也許代碼是指這個[Tkinter模塊](http://effbot.org/zone/wcklib-calendar.htm)?無論如何,這個錯誤似乎與我在上面發佈的代碼無關,所以請開始一個新的問題以獲得進一步的幫助。 – unutbu

+0

我還關注'wckCalendar'和它與運行上面的代碼有什麼關係。除了上述答案中突出顯示的內容之外,我不在代碼中包含任何其他內容。正如你所建議的那樣,剛剛打開了一個關於這個[這裏]的新主題(http://stackoverflow.com/questions/25299371/converting-string-date-to-timestamp-in-python-3-4)。感謝您的意見。 – sedeh

相關問題