From aaed9d3441ae56d1f8f2dddfe12337a52188e0bb Mon Sep 17 00:00:00 2001 From: xianhu Date: Tue, 15 Nov 2016 14:54:08 +0800 Subject: [PATCH] add python_datetime.py --- README.md | 2 ++ python_datetime.py | 54 ++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 56 insertions(+) create mode 100644 python_datetime.py diff --git a/README.md b/README.md index f52b5ee..81f95a7 100644 --- a/README.md +++ b/README.md @@ -21,6 +21,8 @@ ### python_functional.py: Python进阶: 函数式编程实例(附代码) ### python_decorator.py: Python进阶: 通过实例详解装饰器(附代码) + +### python_datetime.py: 你真的了解Python中的日期时间处理吗? =============================================================================== ### 您可以fork该项目,并在修改后提交Pull request diff --git a/python_datetime.py b/python_datetime.py new file mode 100644 index 0000000..7d08c12 --- /dev/null +++ b/python_datetime.py @@ -0,0 +1,54 @@ +# _*_ coding: utf-8 _*_ + +import time +import calendar +import datetime + + +# time模块中的三种时间形式 +print("time stamp:", time.time()) # 时间戳 +print("local time:", time.localtime()) # struct_time类型的本地时间 +print("utc time:", time.gmtime()) # struct_time类型的utc时间 + +# time模块中,三种时间形式之间的转换 +time_stamp = time.time() # 时间戳 +local_time = time.localtime(time_stamp) # 时间戳转struct_time类型的本地时间 +utc_time = time.gmtime(time_stamp) # 时间戳转struct_time类型的utc时间 + +time_stamp_1 = time.mktime(local_time) # struct_time类型的本地时间转时间戳 +time_stamp_2 = calendar.timegm(utc_time) # struct_time类型的utc时间转时间戳 +print(time_stamp, time_stamp_1, time_stamp_2) + + +# time模块中,三种时间形式和字符串之间的转换 +print(time.ctime(time_stamp)) # 时间戳转字符串(本地时间字符串) + +print(time.asctime(local_time)) # struct_time类型的本地时间转字符串 +print(time.asctime(utc_time)) # struct_time类型的utc时间转字符串 + +print(time.strftime("%Y-%m-%d, %H:%M:%S, %w", local_time)) # struct_time类型的本地时间转字符串:自定义格式 +print(time.strftime("%Y-%m-%d, %H:%M:%S, %w", utc_time)) # struct_time类型的utc时间转字符串:自定义格式 + +struct_time = time.strptime("2016-11-15, 15:32:12, 2", "%Y-%m-%d, %H:%M:%S, %w") # 字符串转struct_time类型 + + +# datetime模块中datetime类的用法 +a_datetime_local = datetime.datetime.now() # 获取datetime.datetime类型的本地时间 +a_datetime_utc = datetime.datetime.utcnow() # 获取datetime.datetime类型的utc时间 + +print(a_datetime_local.strftime("%Y-%m-%d, %H:%M:%S, %w")) # datetime.datetime类型转字符串 +print(a_datetime_utc.strftime("%Y-%m-%d, %H:%M:%S, %w")) # datetime.datetime类型转字符串 + +a_datetime = datetime.datetime.strptime("2016-11-15, 15:32:12, 2", "%Y-%m-%d, %H:%M:%S, %w") # 字符串转datetime.datetime格式 + + +# datetime.datetime类和时间戳、struct_time类型之间的转换 +time_stamp = a_datetime_local.timestamp() # datetime类型转时间戳 +print(time_stamp) + +a_datetime_local = datetime.datetime.fromtimestamp(time.time()) # 时间戳转datetime.datetime类型的本地时间 +a_datetime_utc = datetime.datetime.utcfromtimestamp(time.time()) # 时间戳转datetime.datetime类型的utc时间 +print(a_datetime_local, a_datetime_utc) + +print(a_datetime_local.timetuple()) # datetime类型转struct_time类型 +print(a_datetime_utc.utctimetuple()) # datetime类型转struct_time类型