首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Bash / Date /法语本地环境

问Bash / Date /法语本地环境
EN

Stack Overflow用户
提问于 2020-05-18 17:42:37
回答 1查看 41关注 0票数 2

我需要检索日期的月份(dd.month.year)并将其转换为数字YYYY-MM

源月份是法语的,所以我尝试:

代码语言:javascript
复制
# date --date="$(printf "01 %s" "January 2020")" +"%Y-%m"
2020-01

# LC_TIME=fr_FR date --date="$(printf "01 %s" "Janvier 2020")" +"%Y-%m"
date: invalid date '01 Janvier 2020'

# LANG=fr_FR date --date="$(printf "01 %s" "Janvier 2020")" +"%Y-%m"
date: invalid date '01 Janvier 2020'

当我在英语中使用月份时,它可以工作。

但是,对于法语月份,即使强制使用语言或本地环境参数,它也无法正确识别月份。

即使日期很简单,它仍然在我们身上宣告:

代码语言:javascript
复制
# LANG=fr_FR date
Sun May 17 23:45:40 CEST 2020

# LC_TIME=fr_FR date
Sun May 17 23:45:48 CEST 2020

# date
Sun 17 May 2020 11:45:53 PM CEST

有什么想法吗?

代码语言:javascript
复制
info :
Operating System: Debian GNU/Linux 10 (buster)
Kernel: Linux 4.19.0-8-amd64
Architecture: x86-64
EN

回答 1

Stack Overflow用户

发布于 2020-05-18 17:59:49

尽管date所做的解析有时非常灵活且令人惊叹,但它不能处理本地化(here和the array is static here)。您必须构建一个自己将Janvier转换为January的转换数组,然后将结果传递给date。

使用关联bash数组可以很容易地做到这一点:

代码语言:javascript
复制
arr=([Janvier]=January etc)
echo "${arr[Janvier]}"
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61866730

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档