用strftime()自定义时间格式, 报错UnicodeEncodeError: 'locale' codec can't encode character '\u5e74' in posit...

1、Python time strftime()方法

描述

Python time strftime() 函数接收以时间元组,并返回以可读字符串表示的当地时间,格式由参数format决定。

语法

strftime()方法语法:

time.strftime(format[, t])

参数

format -- 格式字符串。

t -- 可选的参数t是一个struct_time对象。

2、ws['A3']=time.strftime("%Y年%m月%d日 %H时%M分%S秒",time.localtime()),当格式中存在中文字符时会报错“UnicodeEncodeError: 'locale' codec can't encode character '\u5e74' in position 2: Illegal byte sequence”

3、解决方法:

方法一:

import local

locale.setlocale(locale.LC_CTYPE,'chinese')

备注:“在Windows里,time.strftime使用C运行时的多字节字符串函数strftime,这个函数必须先根据当前locale配置来编码格式化字符串(使用PyUnicode_EncodeLocale)。”如果不设置好locale的话,根据默认的"C" locale,底层的wcstombs函数会使用latin-1编码(单字节编码)来编码格式化字符串,导致多字节编码的字符串在编码时出错。

方法二:

通过format函数对中文格式字符

ws['A3']=time.strftime("%Y{Y}%m{m}%d{d} %H{H}%M{M}%S{S}",time.localtime()).format(Y='年',m='月',d='日',H='时',M='分',S='秒')

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 写在前面的话 代码中的# > 表示的是输出结果 输入 使用input()函数 用法 注意input函数输出的均是字...
    FlyingLittlePG阅读 3,059评论 0 9
  • 官网 中文版本 好的网站 Content-type: text/htmlBASH Section: User ...
    不排版阅读 4,537评论 0 5
  • 常用模块 认识模块 什么是模块 什么是模块? 常见的场景:一个模块就是一个包含了python定义和声明的文件,文...
    go以恒阅读 2,033评论 0 6
  • 第5章 引用类型(返回首页) 本章内容 使用对象 创建并操作数组 理解基本的JavaScript类型 使用基本类型...
    大学一百阅读 3,281评论 0 4
  • 21天充电行动 今天是腊八节,也是我开启充电行动的第一天,这一天太有意义了。我第一次用简书来记录这段难忘的岁月...
    浅浅梨涡笑阅读 223评论 0 0