如何解析已使用不同语言环境格式化的日期
Posted
技术标签:
【中文标题】如何解析已使用不同语言环境格式化的日期【英文标题】:How to parse a date that has been formatted with different locale 【发布时间】:2015-12-08 15:32:43 【问题描述】:我非常智能的 android 手机生成了日期字段格式为德语区域设置的电子邮件,例如Date: Di., 20 Dez. 2011 23:28:49 +0100
。我将手机切换到英语以阻止它这样做,但已经写了一些电子邮件。
其他一些邮件程序无法处理这个问题,因为它没有安装所有这些语言环境。结果,它将主要日期时间设置为Thu Jan 1 01:00:00 1970
,当我按日期排序时,电子邮件似乎消失了:-(
所以我想通过重写标题来修复这些电子邮件。但是我怎样才能解析德国日期呢? date
命令支持输出语言环境 (date +%c
) 但似乎忽略了输入语言环境:
$ date -d "08 Dec 2015"
Tue Dec 8 00:00:00 CET 2015
$ LC_TIME=de_DE.utf8 date -d "08 Dez 2015"
date: invalid date ‘08 Dez 2015’
有什么想法吗?
【问题讨论】:
Can't do it withdate
: from the manual: "input current must be in locale independent format"
【参考方案1】:
如果您安装了 Python 和 de
语言环境,一种方法是调用
% python /path/to/convert.py "08 Dez 2015"
2015-12-08 00:00:00
convert.py
是这个 python 脚本:
import sys, locale, datetime as DT
locale.setlocale(locale.LC_ALL, 'de_DE.utf8')
print(DT.datetime.strptime(sys.argv[1], '%d %b %Y'))
【讨论】:
以上是关于如何解析已使用不同语言环境格式化的日期的主要内容,如果未能解决你的问题,请参考以下文章