python的datetime举例_Python,datetime模块实例

Python的标准模块datetime模块,在我们的工作中应用非常频繁,下面对datetime中常用的方法进行了总结和测试;对每一个方法都使用了单元测试框架Unittest来配合测试。

主要的类型有:

首先要导入datetime模块:from datetime import datetime, timedelta, timezone

一、自己定义时间格式:1、datetime(2017,2,22,16,5,26);2、datetime.strptime('2017-02-22 16:05:26', '%Y-%m-%d %H:%M:%S')

二、将datetime转化成timestamp格式:datetime(2017,2,22,16,5,26).timestamp()

三、将timestamp转化成datetime格式:datetime.fromtimestamp(1487750726.0)

四、将datetime转化成str格式:datetime(2017,2,22,16,5,26).strftime('%Y-%m-%d %H:%M:%S')

五、利用timedelta进行时间相加:datetime.strptime('2017-02-22 16:05:26', '%Y-%m-%d %H:%M:%S') + timedelta(hours=10, days=2)

六、利用timedelta进行时间相减:datetime.strptime('2017-02-22 14:05:26', '%Y-%m-%d %H:%M:%S') - timedelta(hours=1)

八、转换时区:

utc_datetime = datetime.strptime('2017-02-22 17:05:26', '%Y-%m-%d %H:%M:%S').replace(tzinfo=timezone(timedelta(hours=8)))

# 北京时间

bj_datetime = utc_datetime.astimezone(timezone(timedelta(hours=8)))

# 东京时间

dj_datetime = bj_datetime.astimezone(timezone(timedelta(hours=9)))

下面的就是代码,testDatetime.py:

#coding=utf-8

"""testDatetime.py

datetime模块练习"""

importunittestfrom datetime importdatetime, timedelta, timezoneclassTestDatetime(unittest.TestCase):deftest_get_datetime(self):"""指定日期和时间datetime"""expected= "2017-02-22 16:05:26"actual= datetime(2017,2,22,16,5,26)#print(actual)

self.assertEqual(expected, str(actual))deftest_datetime_translation_timestamp(self):"""将datetime转化成timestamp,返回的是秒"""expected= 1487750726.0actual= datetime(2017,2,22,16,5,26).timestamp()#print(type(actual))

self.assertEqual(expected, actual)deftest_timestamp_translation_datetime(self):"""将timestamp转化成datetime格式"""expected= "2017-02-22 16:05:26"actual= datetime.fromtimestamp(1487750726.0)#print(actual)

self.assertEqual(expected, str(actual))deftest_str_translation_datetime(self):"""将str转化成datetime格式"""expected= datetime(2017,2,22,16,5,26)

actual= datetime.strptime('2017-02-22 16:05:26', '%Y-%m-%d %H:%M:%S')#print(actual)

self.assertEqual(expected, actual)deftest_datetime_translation_str(self):"""将datetime转化成str"""excepted= '2017-02-22 16:05:26'actual= datetime(2017,2,22,16,5,26).strftime('%Y-%m-%d %H:%M:%S')#print(type(actual))

self.assertEqual(excepted, actual)deftest_datetime_add(self):"""利用timedelta进行时间相加"""

#加1小时

excepted1 = datetime.strptime('2017-02-22 17:05:26', '%Y-%m-%d %H:%M:%S')

actual1= datetime.strptime('2017-02-22 16:05:26', '%Y-%m-%d %H:%M:%S') + timedelta(hours=1)#加2天,10小时

excepted2 = datetime.strptime('2017-02-25 02:05:26', '%Y-%m-%d %H:%M:%S')

actual2= datetime.strptime('2017-02-22 16:05:26', '%Y-%m-%d %H:%M:%S') + timedelta(hours=10, days=2)

self.assertEqual(excepted1, actual1)

self.assertEqual(excepted2, actual2)deftest_datetime_plus(self):"""利用timedelta进行时间相减"""

#减1小时

excepted1 = datetime.strptime('2017-02-22 16:05:26', '%Y-%m-%d %H:%M:%S')

actual1= datetime.strptime('2017-02-22 17:05:26', '%Y-%m-%d %H:%M:%S') - timedelta(hours=1)

self.assertEqual(excepted1, actual1)deftest_timezone_translation(self):"""转换时区"""utc_datetime= datetime.strptime('2017-02-22 17:05:26', '%Y-%m-%d %H:%M:%S').replace(tzinfo=timezone(timedelta(hours=8)))#北京时间

bj_datetime = utc_datetime.astimezone(timezone(timedelta(hours=8)))#东京时间

dj_datetime = bj_datetime.astimezone(timezone(timedelta(hours=9)))#print(dj_datetime)

self.assertEqual((bj_datetime + timedelta(hours=1)).strftime('%Y-%m-%d %H:%M:%S'), dj_datetime.strftime('%Y-%m-%d %H:%M:%S'))if __name__ == '__main__':

unittest.main()

还有测试结果图(全部测试通过):

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值