Python中与时间和日期相关的常见模块主要有calendar,time和datetime,后两个主要用于时间的计算和处理等,而calendar一般则用于日历获取、显示等方面。

import time
import datetime

一、time模块

  1. 获取当地时间(localtime(),ctime(),time())
import time
import datetime
a= time.localtime()
b=time.asctime()#time.asctime([tuple])将时间元组转换为字符串,如果时间元组不存在,则使用localtime()返回的当前时间。
c=time.ctime()#将纪元以来的时间(以秒为单位)转换为本地时间中的字符串\
d=time.time()#返回时间戳
print('a:',a)
print('b:',b)
print('c:',c)
print('d:',d)
a: time.struct_time(tm_year=2020, tm_mon=8, tm_mday=19, tm_hour=22, tm_min=31, tm_sec=8, tm_wday=2, tm_yday=232, tm_isdst=0)
b: Wed Aug 19 22:31:08 2020
c: Wed Aug 19 22:31:08 2020
d: 1597847468.5111706
  1. 字符串形式变成时间形式**(strptime(),(strftime())**
#strptime()函数
strptime(string, format) -> struct_time
#strftime()函数
strftime(format[, tuple]) -> string

Commonly used format codes:
%Y Year with century as a decimal number.
%m Month as a decimal number [01,12].
%d Day of the month as a decimal number [01,31].
%H Hour (24-hour clock) as a decimal number [00,23].
%M Minute as a decimal number [00,59].
%S Second as a decimal number [00,61].
%z Time zone offset from UTC.
%I Hour (12-hour clock) as a decimal number [01,12].
%p Locale’s equivalent of either AM or PM.

这里有两个函数使用的简单范例

from time import *
time_tuple= localtime()#返回现在时间的时间元组
str1=strftime('%Y/%m/%d',time_tuple)
print(str1)
tuple2=strptime("2020/08/19","%Y/%m/%d")
print(tuple2)
2020/08/19
time.struct_time(tm_year=2020, tm_mon=8, tm_mday=19, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=2, tm_yday=232, tm_isdst=-1)

也可以两个函数的结果互相充当另一个函数的参数:

from time import *
time_tuple= localtime()
str1=strftime('%Y/%m/%d',time_tuple)
print(str1)
#此处将string直接改成我们的str1字符串
str2=strptime(str1,"%Y/%m/%d \n")
print(str2)
2020/08/19
time.struct_time(tm_year=2020, tm_mon=8, tm_mday=19, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=2, tm_yday=232, tm_isdst=-1)

3. 延申和错误解决
(1)[strptime,strftime 结果转换 报错 ValueError: unconverted data remains: 】
需要注意的是,str1除了包含我们的时间数据外还包含一个空格与换行符(实际上是我打错的),所以在strptime参数中需要额外指明格式(多+一个空格和换行符),否则将会报错unconverted data remains:

ValueError: unconverted data remains:

(2)strftime()函数不能直接在括号内用中文转化成一定的格式

from time import *
time_tuple= localtime()#返回现在时间的时间元组
str1=strftime('%Y年%m月%d日',time_tuple)
print(str1)

报错:UnicodeEncodeError: ‘locale’ codec can’t encode character ‘\u5e74’ in position 2: encoding error
原因是括号中的中文没有转化为unicode编码失败的

from time import *
time_tuple= localtime()#返回现在时间的时间元组
#方法一:改变编码
string=strftime('%Y年%m月%d日'.encode('unicode_escape').decode('utf8'),time_tuple).encode('utf-8').decode('unicode_escape')
print('方法一:',string)
#方法二:格式化输出
str1=strftime("%Y{}%m{}%d{} %H{}%M{}%S{}",localtime())#因为str1保存的是字符串,{}再用format自然就可以格式化输出了
print('方法二:',str1.format('年','月','日','时','分','秒'))
#或者如下
print('另一种格式化的方法:',strftime('%Y{y}%m{m}%d{d}',localtime()).format(y='年',m='月',d='日'))方法一: 2020年08月20日
方法二: 2020年08月20日 00时09分12秒
另一种格式化的方法: 2020年08月20日

二、datetime模块
datetime对象

from datetime import *
print(datetime.now())
#注意now()调用的方式,且返回的是datetime类存储时间类型
#用print函数输出时,相当于调用了str(datetime),将datetime类型转化成字符串类型
datetime.now()2020-08-20 00:19:10.856333
datetime.datetime(2020, 8, 20, 0, 19, 10, 856333)

timedelta

datetime.now()-datetime(2020,8,19)
#datetime对象间的减法结果类型为timedelta,表示时间差
datetime.timedelta(days=1, seconds=1272, microseconds=850314)

也有strftime和strptime两种方法用于转换格式

from datetime import *
datetime.now().strftime('%Y %m %d')
'2020-08-20'

注意不要用错了strftime函数,写成

datetime.strftime('%Y-%m-%d',datetime object)
//否则报错
TypeError: descriptor 'strftime' requires a 'datetime.date' object but received a 'str'

【Python】Time模块 ValueError: unconverted data remains: UnicodeEncodeError:相关推荐

  1. Python中调用FRED报错ValueError: time data 'fred' does not match format '%Y-%m-%d'

    Python中调用FRED报错ValueError: time data 'fred' does not match format '%Y-%m-%d' 小白一枚,刚学习python调用FRED等数据 ...

  2. Day05 - Python 常用模块

    1. 模块简介 模块就是一个保存了 Python 代码的文件.模块能定义函数,类和变量.模块里也能包含可执行的代码. 模块也是 Python 对象,具有随机的名字属性用来绑定或引用. 下例是个简单的模 ...

  3. 「学习笔记——Python」Python 的模块(Modules)

    6 Python的模块 (Modules) Table of Contents 1 关于模块 1.1 更多关于模块的故事 1.2 将模块作为脚体执行 1.3 模块搜索路径 1.4 "编译过的 ...

  4. 【Python基础】Python时间模块,超实用总结!

    我的施工之路 施工之路已完成13篇图文,又提炼为思维导图,结合使用,效果最佳. 1我的施工计划 2数字专题 3字符串专题 4列表专题 5流程控制专题 6编程风格专题 7函数使用 8面向对象编程(上篇) ...

  5. Python常用模块集锦

    常用模块主要分为以下几类(缺失的后续再补充): 时间转换 时间计算 序列化和反序列化:json,pickle 编解码:unicode,base64 加解密:md5,sha1,hmac_sha1,aes ...

  6. [转]python各模块的学习

    [-] 01 关于本书 02 代码约定 03 关于例子 04 如何联系我们 1 核心模块 11 介绍 111 内建函数和异常 112 操作系统接口模块 113 类型支持模块 114 正则表达式 115 ...

  7. python 各种模块学习

    from:https://blog.csdn.net/weiwangchao_/article/details/70570508 转载:.... Python的模块大全,很全,有详细介绍! 另外附Py ...

  8. Python导入模块报错问题的分析

    在Python代码中导入自定义模块时经常遇到报错问题,并且在PyCharm和命令行中会有不同的表现.本文通过实例分析两种常见的导入错误出现的原因及解决方法. Python版本:3.8 1.相对导入报错 ...

  9. python正则表达式需要模块_使用Python正则表达式模块,让操作更加简单

    处理文本数据的一个主要任务就是创建许多以文本为基础的特性. 人们可能想要在文本中找出特定格式的内容,比如找出存在于文本中的电子邮件,或者大型文本中的电话号码. 虽然想要实现上述功能听起来很繁琐,但是如 ...

  10. python第三方模块—psutil模块

    系统基础信息采集模块作为监控模块的重要组成部分,能够帮助运维人员了解当前系统的健康程度,同时也是衡量业务的服务质量的依据,比如系统资源吃紧,会直接影响业务的服务质量及用户体验,另外获取设备的流量信息, ...

最新文章

  1. 2022-2028年中国电梯行业市场调查及前瞻分析报告
  2. 【8.23更新--技术干货全家桶】大数据计算技术共享计划 — MaxCompute技术公开课第二季...
  3. 2019年企业云呈现五大技术发展趋势
  4. 【Android FFMPEG 开发】FFMPEG 解码 AVPacket 数据到 AVFrame ( AVPacket-解码器 | 初始化 AVFrame | 解码为 AVFrame 数据 )
  5. JAVA-JSP内置对象之out对象进行页面输出
  6. JavaScript基础(六)面向对象
  7. 页面jquery调试的一个宝贵经验(类似于Eclipse中的写出一个对象点它的方法时候用alt加/可以跳出来它所有的方法)...
  8. C#图片处理之:图片缩放和剪裁
  9. Navicat 常用快捷键
  10. 谈谈对从业IT行业看法
  11. Atitit gui界面ui技术发展史与未来趋势
  12. tayga nat64优化的自省揭示tun虚拟网卡的正确玩法
  13. oracle开方怎么写,excel的开方/平方/次方及根号运算
  14. 一款免费的截图、滚动截屏软件
  15. 电容笔和触控笔的区别是什么?好用的电容笔测评
  16. 数字时钟单片机程序c语言,单片机数字时钟C语言程序
  17. 动态时间规整算法: 从DTW到FastDTW
  18. 「镁客·请讲」OracleChain老狼:EOS智能合约生态唯上,超级节点的竞争,不看吹牛先看做事...
  19. eclipse常规使用(Eclipse Jee Oxygen)
  20. [附源码]Python计算机毕业设计大众点评管理系统

热门文章

  1. 《Robot Framework自动化测试修炼宝典》道长
  2. QT 加载歌词LRC文件
  3. [转载]谈谈我对攻读计算机研究生的看法
  4. 【Docker 那些事儿】如何安全地停止、删除容器
  5. 所谓完数就是该数恰好等于除自身外的因子之和。例如:6=1+2+3,其中1、2、3为6的因子。本题要求编写程序,找出任意两正整数m和n之间的所有完数。
  6. unity 常见的置灰处理
  7. 雷达一维距离像怎么用matlab仿真出来,雷达目标识别之一维距离像的学习
  8. 怎么调用计算机任务管理器,任务管理器怎么打开
  9. 【保研】-- 保研夏令营中线上面试注意事项
  10. CS294(285)策略梯度学习笔记