python中time.strftime不支持中文,报错UnicodeE…
2019-07-24 09:27:57来源:博客园 阅读 ()
使用time.strftime将 "2020-10-10 10:10:10" 转化为 2020年10月10日10时10分10 报错:
import time timestr="2020-10-10 10:10:10" t=time.strptime(timestr,"%Y-%m-%d %H:%M:%S") print(time.strftime("%Y年%m月%d日 %H时%M分%S秒",t))
根据错误可以看出,没有执行成功的原因是"%Y年%m月%d日 %H时%M分%S秒"中包含了中文,中文没有转化为unicode编码失败的。
解决方法:
方法一:先转为uncode编码执行,执行完后转为utf-8显示
import time timestr="2020-10-10 10:10:10" t=time.strptime(timestr,"%Y-%m-%d %H:%M:%S") print(time.strftime("%Y年%m月%d日 %H时%M分%S秒".encode('unicode_escape').decode('utf8'),t).encode('utf-8').decode('unicode_escape'))
执行结果:
方法二:修改语言符号 详情
import time,locale timestr="2020-10-10 10:10:10" t=time.strptime(timestr,"%Y-%m-%d %H:%M:%S") locale.setlocale(locale.LC_CTYPE,'chinese') print(time.strftime("%Y年%m月%d日 %H时%M分%S秒",t))
执行结果:
方法三:重写一个自定义转化函数
def change_time(timeStr:str,t_int=False)->str: import re t_text = ['年', '月', '日 ', '时', '分', '秒'] re_t = re.compile("[\d|\.]+") str_time = '' for k, v in zip(t_text, re_t.findall(timeStr)): if t_int and '.' in v : v=re.sub('\.\d+', '', v) str_time += str(v) + k return str_time if __name__ == '__main__': print(datetime.now()) t=change_time(str(datetime.now())) int_t=change_time(t,True) float_t=change_time(t) print(int_t) print(float_t)
执行结果:
原文链接:https://www.cnblogs.com/feiquan/p/11217534.html
如有疑问请与原作者联系
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:千锋Python高级视频教程
下一篇:电影天堂爬虫
- python3基础之“术语表(2)” 2019-08-13
- python3 之 字符串编码小结(Unicode、utf-8、gbk、gb2312等 2019-08-13
- Python3安装impala 2019-08-13
- 小白如何入门 Python 爬虫? 2019-08-13
- python_字符串方法 2019-08-13
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash