python - 如何在 .strftime 中将日期和月份大写?
问题描述
我有这个 Python 代码,它给了我完整的日期,然后它给了我小写的所有内容,但在这里我发现我可以把 .capitalize ()
而对于大写字母的日期和月份的第一个字母,问题是它只适用于日期,月份的第一个字母仍然是我的字母。
我怎样才能使一天的第一个字母和月份的第一个字母大写?
def nowISO(self):
"""Return the current utc time in ISO8601 timestamp format."""
return datetime.utcnow().isoformat()
def ISOtoHuman(self, date: str, language: str):
"""Return the provided ISO8601 timestamp in human-readable format."""
try:
locale.setlocale(locale.LC_ALL, 'es_MX.UTF-8')
except locale.Error:
log.warn(f"Unsupported locale configured, using system default")
try:
# Unix-supported zero padding removal
return datetime.strptime(date, "%Y-%m-%d").strftime("%A, %-d, de %B, del %Y").capitalize()
except ValueError:
try:
# Windows-supported zero padding removal
return datetime.strptime(date, "%Y-%m-%d").strftime("%A %#d de %B del %Y").capitalize()
except Exception as e:
log.error(self, f"Failed to convert to human-readable time, {e}")
当前结果示例:
解决方案
我不知道您的语言环境的默认设置,但您可以尝试
datetime.strptime(date, "%Y-%m-%d").strftime("%A, %-d, de %B, del %Y")
如果返回的小写版本比您可以剪切日期字符串,请将每个部分大写并将它们连接在一起
' '.join( map(lambda s: s.capitalize(), datetime.strptime(date, "%Y-%m-%d").strftime("%A %-d de@@%B del %Y").split('@@') ) )
和
' '.join( map(lambda s: s.capitalize(), datetime.strptime(date, "%Y-%m-%d").strftime("%A %#d de@@%B del %Y").split('@@') ) )
推荐阅读
- mongodb - 如何将 mongdb UUID() 转换为字符串?
- ios - UIView convert(_:to:) 方法的渐近运行时复杂度是多少?
- javascript - 你能推迟 SVG 中的脚本吗?
- android - 如何在 mutlti 模块项目中正确实现这种依赖关系?
- firebase - 如何使用 google-cloud-firestore 获得工作的 osgi-bundle?
- javascript - 如果记录不存在则插入,如果存在则更新
- amazon-web-services - STS AssumeRole 错误:AWS 访问密钥“我们的记录中不存在”
- java - Kafka Producer Java 和 .NET CORE 2.1
- python-3.x - 如何计算while循环的重复次数
- ms-access - 有没有办法在 Access 表中引入条件格式?