根据时间戳(毫秒)计算年龄

代码:

  1. # -*- coding: utf-8 -*-  
  2. import time  
  3. import datetime  
  4.     
  5. def time2age(atime):  
  6.     """ 
  7.     input:atime 一个时间戳(毫秒) 
  8.     return:age 年龄(跟当前时间相比) 
  9.     """  
  10.     # 1.将时间转化为一个datetime对象  
  11.     atime_date_obj = datetime.datetime.fromtimestamp(atime/1000)  
  12.     # 2.datetime对象转化为一个元祖,便于后续比较  
  13.     atime_tuple = (atime_date_obj.year,atime_date_obj.month,atime_date_obj.day)  
  14.     # 3.当前日期  
  15.     now_date_obj = datetime.datetime.now()  
  16.     now_tuple = (now_date_obj.year,now_date_obj.month,now_date_obj.day)  
  17.     # 4.计算差值  
  18.     age = now_tuple[0] - atime_tuple[0] + (now_tuple[1:] > atime_tuple[1:]) - 1  
  19.     
  20.     return age  
  21.     
  22.     
  23. if __name__ == "__main__":  
  24.     t = time.time() - 1000000000  
  25.     print(time2age(t * 1000))  

思路:

  1. 用datetime.datetime.fromtimestamp( )方法将时间戳转化为datetime对象,再转化为一个(year,month,day)的元祖与当前时间进行比较;
  2. 时间元祖进行比较的时候,利用到了 1 + True = 2, 1 + False = 1的小技巧
原文地址:https://www.cnblogs.com/daigua/p/9575143.html