python时间处理之datetime

时间:2023-03-08 17:11:47
2012-09-12 23:21 20910人阅读 评论(0) 收藏 举报
python时间处理之datetime 分类:
Python系列(12) python时间处理之datetime

版权声明:本文为博主原创文章,未经博主允许不得转载。

目录(?)[+]

运行环境:Python3.4

  1. # -*- coding: utf-8 -*-
  2. #datetime类
  3. #datetime是date与time的结合体,包括date与time的所有信息。
  4. #它的构造函数如下:
  5. #datetime. datetime (year, month, day[ , hour[ , minute[ , second[ , microsecond[ , tzinfo] ] ] ] ] )
  6. #各参数的含义与date、time的构造函数中的一样,要注意参数值的范围。
  7. # 1. datetime类定义的类属性与方法:
  8. #datetime.min、datetime.max:datetime所能表示的最小值与最大值;
  9. #print: datetime.max: 9999-12-31 23:59:59.999999
  10. #print: datetime.min: 0001-01-01 00:00:00
  11. from  datetime  import  *
  12. import time
  13. print   ('datetime.max:' +str(datetime.max ))
  14. print   ('datetime.min:' +str(datetime.min))
  15. #datetime.resolution:datetime最小单位;
  16. #print: datetime.resolution: 0:00:00.000001
  17. print   ('datetime.resolution:' + str(datetime.resolution ))
  18. #datetime.today():返回一个表示当前本地时间的datetime对象;
  19. #print: today(): 2012-09-12 19:37:50.721000
  20. print   ('today():' +str(datetime.today() ))
  21. #datetime.now([tz]):返回一个表示当前本地时间的datetime对象,如果提供了参数tz,则获取tz参数所指时区的本地时间;
  22. #print: now(): 2012-09-12 19:37:50.738000
  23. print   ('now():'+str( datetime.now() ))
  24. #datetime.utcnow():返回一个当前utc时间的datetime对象;
  25. #print: 2012-09-12 11:37:50.739000
  26. print   ('utcnow():' +str(datetime.utcnow() ))
  27. #datetime.fromtimestamp(timestamp[, tz]):根据时间戮创建一个datetime对象,参数tz指定时区信息;
  28. #print: fromtimestamp(tmstmp): 2012-09-12 19:37:50.741000
  29. print   ('fromtimestamp(tmstmp):' +str(datetime.fromtimestamp(time.time()) ))
  30. #datetime.utcfromtimestamp(timestamp):根据时间戮创建一个datetime对象;
  31. #print: utcfromtimestamp(tmstmp): 2012-09-12 11:37:50.742000
  32. print   ('utcfromtimestamp(tmstmp):' +str(datetime.utcfromtimestamp(time.time())) )
  33. #datetime.combine(date, time):根据date和time,创建一个datetime对象;
  34. #print: datetime.combine(date,time):  2012-09-12 19:46:05
  35. d = date(2012,9,12)
  36. from  datetime  import  *
  37. t = time(19,46,5)
  38. print ('datetime.combine(date,time): '+str(datetime.combine(d,t)))
  39. #datetime.strptime(date_string, format):将格式字符串转换为datetime对象;
  40. #print: 2007-03-04 21:08:12
  41. print (datetime.strptime("2007-03-04 21:08:12", "%Y-%m-%d %H:%M:%S"))
  42. #2. datetime类提供的实例方法与属性
  43. dt = datetime.strptime("2012-09-12 21:08:12", "%Y-%m-%d %H:%M:%S")
  44. #print: 2012 9 12 21 8 12 0 None
  45. print (dt.year)
  46. print(dt.month)
  47. print(dt.day)
  48. print(dt.hour)
  49. print(dt.minute)
  50. print(dt.second)
  51. print(dt.microsecond)
  52. print(dt.tzinfo)
  53. print (dt.date())
  54. print (dt.time())
  55. print (dt.replace(year = 2013))
  56. print (dt.timetuple())
  57. print (dt.utctimetuple())
  58. print (dt.toordinal())
  59. print (dt.weekday())
  60. print (dt.isocalendar())
  61. #print dt.isoformat([sep])
  62. #datetime. ctime ():返回一个日期时间的C格式字符串,等效于time.ctime(time.mktime(dt.timetuple()));
  63. #3. 格式字符串
  64. # datetime. strftime (format)
  65. # %a 星期的简写。如 星期三为Web
  66. # %A 星期的全写。如 星期三为Wednesday
  67. # %b 月份的简写。如4月份为Apr
  68. # %B月份的全写。如4月份为April
  69. # %c:  日期时间的字符串表示。(如: 04/07/10 10:43:39)
  70. # %d:  日在这个月中的天数(是这个月的第几天)
  71. # %f:  微秒(范围[0,999999])
  72. # %H:  小时(24小时制,[0, 23])
  73. # %I:  小时(12小时制,[0, 11])
  74. # %j:  日在年中的天数 [001,366](是当年的第几天)
  75. # %m:  月份([01,12])
  76. # %M:  分钟([00,59])
  77. # %p:  AM或者PM
  78. # %S:  秒(范围为[00,61],为什么不是[00, 59],参考python手册~_~)
  79. # %U:  周在当年的周数当年的第几周),星期天作为周的第一天
  80. # %w:  今天在这周的天数,范围为[0, 6],6表示星期天
  81. # %W:  周在当年的周数(是当年的第几周),星期一作为周的第一天
  82. # %x:  日期字符串(如:04/07/10)
  83. # %X:  时间字符串(如:10:43:39)
  84. # %y:  2个数字表示的年份
  85. # %Y:  4个数字表示的年份
  86. # %z:  与utc时间的间隔 (如果是本地时间,返回空字符串)
  87. # %Z:  时区名称(如果是本地时间,返回空字符串)
  88. # %%:  %% => %
  89. dt = datetime.now()
  90. #print: (%Y-%m-%d %H:%M:%S %f):  2012-09-12 23:04:27 145000
  91. print ('(%Y-%m-%d %H:%M:%S %f): '+ str(dt.strftime('%Y-%m-%d %H:%M:%S %f')))
  92. #print: (%Y-%m-%d %H:%M:%S %p):  12-09-12 11:04:27 PM
  93. print ('(%Y-%m-%d %H:%M:%S %p): '+str(dt.strftime('%y-%m-%d %I:%M:%S %p')))
  94. #print: %a: Wed
  95. print ('%%a: %s ' % dt.strftime('%a'))
  96. #print: %A: Wednesday
  97. print ('%%A: %s ' % dt.strftime('%A'))
  98. #print: %b: Sep
  99. print ('%%b: %s ' % dt.strftime('%b'))
  100. #print: %B: September
  101. print ('%%B: %s ' % dt.strftime('%B'))
  102. #print: 日期时间%c: 09/12/12 23:04:27
  103. print ('日期时间%%c: %s ' % dt.strftime('%c'))
  104. #print: 日期%x:09/12/12
  105. print ('日期%%x:%s ' % dt.strftime('%x'))
  106. #print: 时间%X:23:04:27
  107. print ('时间%%X:%s ' % dt.strftime('%X'))
  108. #print: 今天是这周的第3天
  109. print ('今天是这周的第%s天 ' % dt.strftime('%w'))
  110. #print: 今天是今年的第256天
  111. print ('今天是今年的第%s天 ' % dt.strftime('%j'))
  112. #print: 今周是今年的第37周
  113. print ('今周是今年的第%s周 ' % dt.strftime('%U'))

运行结果

  1. atetime.max:9999-12-31 23:59:59.999999
  2. datetime.min:0001-01-01 00:00:00
  3. datetime.resolution:0:00:00.000001
  4. today():2014-05-04 15:58:18.141186
  5. now():2014-05-04 15:58:18.193146
  6. utcnow():2014-05-04 07:58:18.243958
  7. fromtimestamp(tmstmp):2014-05-04 15:58:18.291558
  8. utcfromtimestamp(tmstmp):2014-05-04 07:58:18.342550
  9. datetime.combine(date,time): 2012-09-12 19:46:05
  10. 2007-03-04 21:08:12
  11. 2012
  12. 9
  13. 12
  14. 21
  15. 8
  16. 12
  17. 0
  18. None
  19. 2012-09-12
  20. 21:08:12
  21. 2013-09-12 21:08:12
  22. time.struct_time(tm_year=2012, tm_mon=9, tm_mday=12, tm_hour=21, tm_min=8, tm_sec=12, tm_wday=2, tm_yday=256, tm_isdst=-1)
  23. time.struct_time(tm_year=2012, tm_mon=9, tm_mday=12, tm_hour=21, tm_min=8, tm_sec=12, tm_wday=2, tm_yday=256, tm_isdst=0)
  24. 734758
  25. 2
  26. (2012, 37, 3)
  27. (%Y-%m-%d %H:%M:%S %f): 2014-05-04 15:58:19 326295
  28. (%Y-%m-%d %H:%M:%S %p): 14-05-04 03:58:19 PM
  29. %a: Sun
  30. %A: Sunday
  31. %b: May
  32. %B: May
  33. 日期时间%c: Sun May  4 15:58:19 2014
  34. 日期%x:05/04/14
  35. 时间%X:15:58:19
  36. 今天是这周的第0天
  37. 今天是今年的第124天
  38. 今周是今年的第18周

运行环境:Python2.x

  1. # -*- coding: utf-8 -*-
  2. #datetime类
  3. #datetime是date与time的结合体,包括date与time的所有信息。
  4. #它的构造函数如下:
  5. #datetime. datetime (year, month, day[ , hour[ , minute[ , second[ , microsecond[ , tzinfo] ] ] ] ] )
  6. #各参数的含义与date、time的构造函数中的一样,要注意参数值的范围。
  7. # 1. datetime类定义的类属性与方法:
  8. #datetime.min、datetime.max:datetime所能表示的最小值与最大值;
  9. #print: datetime.max: 9999-12-31 23:59:59.999999
  10. #print: datetime.min: 0001-01-01 00:00:00
  11. from  datetime  import  *
  12. import time
  13. print   'datetime.max:' , datetime.max
  14. print   'datetime.min:' , datetime.min
  15. #datetime.resolution:datetime最小单位;
  16. #print: datetime.resolution: 0:00:00.000001
  17. print   'datetime.resolution:' , datetime.resolution
  18. #datetime.today():返回一个表示当前本地时间的datetime对象;
  19. #print: today(): 2012-09-12 19:37:50.721000
  20. print   'today():' , datetime.today()
  21. #datetime.now([tz]):返回一个表示当前本地时间的datetime对象,如果提供了参数tz,则获取tz参数所指时区的本地时间;
  22. #print: now(): 2012-09-12 19:37:50.738000
  23. print   'now():' , datetime.now()
  24. #datetime.utcnow():返回一个当前utc时间的datetime对象;
  25. #print: 2012-09-12 11:37:50.739000
  26. print   'utcnow():' , datetime.utcnow()
  27. #datetime.fromtimestamp(timestamp[, tz]):根据时间戮创建一个datetime对象,参数tz指定时区信息;
  28. #print: fromtimestamp(tmstmp): 2012-09-12 19:37:50.741000
  29. print   'fromtimestamp(tmstmp):' , datetime.fromtimestamp(time.time())
  30. #datetime.utcfromtimestamp(timestamp):根据时间戮创建一个datetime对象;
  31. #print: utcfromtimestamp(tmstmp): 2012-09-12 11:37:50.742000
  32. print   'utcfromtimestamp(tmstmp):' , datetime.utcfromtimestamp(time.time())
  33. #datetime.combine(date, time):根据date和time,创建一个datetime对象;
  34. #print: datetime.combine(date,time):  2012-09-12 19:46:05
  35. d = date(2012,9,12)
  36. from  datetime  import  *
  37. t = time(19,46,5)
  38. print 'datetime.combine(date,time): ',datetime.combine(d,t)
  39. #datetime.strptime(date_string, format):将格式字符串转换为datetime对象;
  40. #print: 2007-03-04 21:08:12
  41. print datetime.strptime("2007-03-04 21:08:12", "%Y-%m-%d %H:%M:%S")
  42. #2. datetime类提供的实例方法与属性
  43. dt = datetime.strptime("2012-09-12 21:08:12", "%Y-%m-%d %H:%M:%S")
  44. #print: 2012 9 12 21 8 12 0 None
  45. print dt.year,dt.month,dt.day,dt.hour,dt.minute,dt.second,dt.microsecond,dt.tzinfo
  46. print dt.date()
  47. print dt.time()
  48. print dt.replace(year = 2013)
  49. print dt.timetuple()
  50. print dt.utctimetuple()
  51. print dt.toordinal()
  52. print dt.weekday()
  53. print dt.isocalendar()
  54. #print dt.isoformat([sep])
  55. #datetime. ctime ():返回一个日期时间的C格式字符串,等效于time.ctime(time.mktime(dt.timetuple()));
  56. #3. 格式字符串
  57. # datetime. strftime (format)
  58. # %a 星期的简写。如 星期三为Web
  59. # %A 星期的全写。如 星期三为Wednesday
  60. # %b 月份的简写。如4月份为Apr
  61. # %B月份的全写。如4月份为April
  62. # %c:  日期时间的字符串表示。(如: 04/07/10 10:43:39)
  63. # %d:  日在这个月中的天数(是这个月的第几天)
  64. # %f:  微秒(范围[0,999999])
  65. # %H:  小时(24小时制,[0, 23])
  66. # %I:  小时(12小时制,[0, 11])
  67. # %j:  日在年中的天数 [001,366](是当年的第几天)
  68. # %m:  月份([01,12])
  69. # %M:  分钟([00,59])
  70. # %p:  AM或者PM
  71. # %S:  秒(范围为[00,61],为什么不是[00, 59],参考python手册~_~)
  72. # %U:  周在当年的周数当年的第几周),星期天作为周的第一天
  73. # %w:  今天在这周的天数,范围为[0, 6],6表示星期天
  74. # %W:  周在当年的周数(是当年的第几周),星期一作为周的第一天
  75. # %x:  日期字符串(如:04/07/10)
  76. # %X:  时间字符串(如:10:43:39)
  77. # %y:  2个数字表示的年份
  78. # %Y:  4个数字表示的年份
  79. # %z:  与utc时间的间隔 (如果是本地时间,返回空字符串)
  80. # %Z:  时区名称(如果是本地时间,返回空字符串)
  81. # %%:  %% => %
  82. dt = datetime.now()
  83. #print: (%Y-%m-%d %H:%M:%S %f):  2012-09-12 23:04:27 145000
  84. print '(%Y-%m-%d %H:%M:%S %f): ', dt.strftime('%Y-%m-%d %H:%M:%S %f')
  85. #print: (%Y-%m-%d %H:%M:%S %p):  12-09-12 11:04:27 PM
  86. print '(%Y-%m-%d %H:%M:%S %p): ', dt.strftime('%y-%m-%d %I:%M:%S %p')
  87. #print: %a: Wed
  88. print '%%a: %s ' % dt.strftime('%a')
  89. #print: %A: Wednesday
  90. print '%%A: %s ' % dt.strftime('%A')
  91. #print: %b: Sep
  92. print '%%b: %s ' % dt.strftime('%b')
  93. #print: %B: September
  94. print '%%B: %s ' % dt.strftime('%B')
  95. #print: 日期时间%c: 09/12/12 23:04:27
  96. print '日期时间%%c: %s ' % dt.strftime('%c')
  97. #print: 日期%x:09/12/12
  98. print '日期%%x:%s ' % dt.strftime('%x')
  99. #print: 时间%X:23:04:27
  100. print '时间%%X:%s ' % dt.strftime('%X')
  101. #print: 今天是这周的第3天
  102. print '今天是这周的第%s天 ' % dt.strftime('%w')
  103. #print: 今天是今年的第256天
  104. print '今天是今年的第%s天 ' % dt.strftime('%j')
  105. #print: 今周是今年的第37周
  106. print '今周是今年的第%s周 ' % dt.strftime('%U')
0