2012-01-13 18 views
-4

可能重複:
Converting string into datetime蟒從串讀出和設置變量

例'12:00:01 AM」

我想設置變量:HR = 12 ,min = 00,s = 01,t = AM

請幫我比較時間,我比較(例如:1:10:00 ')

與<產生的符號結果並不總是正確的。

所以我想開發代碼通過設置變量

比較時間,但它可以由任何功能是直接可用,請讓我知道

否則請幫我設置變量

+0

在http://stackoverflow.com/questions/466345/converting-string-into-datetime的回答可以幫助你。 – AlG 2012-01-13 14:19:55

+0

您嘗試實施哪些代碼,以及它在哪裏無法正常工作? – Makoto 2012-01-13 14:20:26

回答

0

它使用日期時間對象比較容易比較日期和時間,而不是設置表示小時,分鐘,秒等等的變量並自己進行計算。

從標準庫使用:

import datetime as dt 

date1 = dt.datetime.strptime('12:00:01 AM', '%I:%M:%S %p') 
date2 = dt.datetime.strptime('1:10:01 PM', '%I:%M:%S %p') 

print(date1) 
# 1900-01-01 12:00:01 

print(date2) 
# 1900-01-01 13:10:01 

print(date2 < date1) 
# False 

或者,使用dateutil:上述

import dateutil.parser as parser 

date1 = parser.parse('12:00:01 AM') 
date2 = parser.parse('1:10:00 PM') 

print(date1) 
# 2012-01-13 00:00:01 

print(date2) 
# 2012-01-13 13:10:00 

print(date2 < date1) 
# False 

示出,沒有必要設置變量爲小時,分鐘和秒。但是,它很容易從一個datetime.datetime對象以及訪問這些信息:

In [44]: x = dt.datetime.strptime('12:00:01 AM', '%I:%M:%S %p') 

In [45]: x.hour, x.minute, x.second 
Out[45]: (0, 0, 1)