python处理时间和日期(process time and date use python)

time and date
error correction in graph (Datetime obj->string):dt_obj.strftime(format))
 
import time, datetime
1. datetime obj
1) datetime
datetime.datetime.now()
datetime.datetime.now() - datetime.timedelta(days=42)
datetime.datetime.combine(datetime.date.today(), datetime.time.min)
datetime.datetime(*time.localtime()[0:6])
datetime.datetime.strptime("2016-05-04 00:00:00", "%Y-%m-%d %H:%M:%S")
datetime.datetime.fromtimestamp(1462291200.0)
datetime.datetime.fromtimestamp(time.mktime(time.gmtime())) == datetime.datetime.utcfromtimestamp(time.mktime(time.localtime()))
2) date
datetime.datetime.now().date()
datetime.date.today()
datetime.date.today() + datetime.timedelta(days=42)
3) timedelta
datetime.timedelta(days=42)
# datetime.timedelta(days=42).total_seconds()
(datetime.datetime.now() - datetime.datetime(2016,5,4,0,0,0))
# (datetime.datetime.now() - datetime.datetime(2016,5,4,0,0,0)).total_seconds()
 
2. time tuple
time.localtime()
time.gmtime()
datetime.datetime.now().timetuple()
time.strptime("2016-05-04 00:00:00", "%Y-%m-%d %H:%M:%S")
time.localtime(1462291200.0)
 
3. string
datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
 
4. time stamp
time.time()
time.mktime(time.localtime())
time.mktime(time.gmtime())
int(time.time()) + 86400 * days
 
- iteration:
import datetime
begin, end = '20151101', datetime.datetime.today().strftime("%Y%m%d")
begin_tuple, end_tuple = datetime.datetime.strptime(begin, "%Y%m%d"), datetime.datetime.strptime(end, "%Y%m%d")
 
cur_tuple = begin_tuple
while cur_tuple <= end_tuple:
    cur = cur_tuple.strftime("%Y%m%d")
    print cur
    cur_tuple += datetime.timedelta(days=30)
- use dateutil:
import datetime
from dateutil.rrule import rrule, MONTHLY
begin_day = datetime.datetime.strptime("2015-11-01", "%Y-%m-%d")
end_day = (datetime.datetime.today() + datetime.timedelta(days=31))
split_days = rrule(MONTHLY,dtstart=begin_day,until=end_day)
for ld, rd in zip(*[iter(split_days[i:]) for i in range(2)]):
    print ld, rd
- parse an ISO 8601-formatted date:
import datetime
import dateutil.parser
import pytz
dt = dateutil.parser.isoparse("2020-05-11T02:00:15.696+0530").astimezone(UTC)
dt2 = datetime.datetime.strptime("2015-11-01", "%Y-%m-%d").replace(tzinfo=pytz.UTC)
How to parse an ISO 8601-formatted date?
convert string having timezone into to utc datetime object python
TypeError: can't compare offset-naive and offset-aware datetimes
 
- reference:
原文地址:https://www.cnblogs.com/yaoyaohust/p/10363117.html