相关疑难解决方法(0)

在bash中转换日期格式

我有这种格式的日期:"2011年6月27日",我想将其转换为20110627

可以用bash做吗?

linux bash awk date

52
推荐指数
5
解决办法
16万
查看次数

linux bash - 以自定义格式解析日期

我有一个%c格式的日期(可能是任何其他),我需要在date命令中使用它.%c不是美国格式.它是德国人,因为它是德国服务器.这在美国服务器上也无法正常工作.(区域设置为德语或美国语)

这不起作用(包括错误):

user@server:~$ NOW=$(date +%c); echo $NOW
Do 19 Dez 2013 22:33:28 CET
user@server:~$ date --date="$NOW" +%d/%m/%Y
date: ungültiges Datum „Do 19 Dez 2013 22:33:28 CET“
Run Code Online (Sandbox Code Playgroud)

(日期:ungültigesGeatum"Do 19 Dez 2013 22:33:28 CET"= date: invalid date „Do 19 Dez 2013 22:33:28 CET“)

困难在于我不知道以后会使用哪种语言环境甚至whci dateformat,因为用户可以设置自己的格式.所以一个简单的特定解析解决方案真的不会起作用!

但是我该怎么办呢?

为了推广这个问题:

如果我有一个日期格式format1 (可以是任何或至少可以反转的格式)我可以使用日期来获取格式化日期.但是如果我想将它格式化为另一个日期(format2)我该怎么做呢?
使用除coreutils之外的任何其他解决方案都是没有意义的,因为我正在尝试为尽可能多的unix机器开发一个bash脚本.

DATE=$(date "+$format1")

date --date="$DATE" "+$format2" # Error in most cases!
Run Code Online (Sandbox Code Playgroud)

这是必需的,因为我有一个用户可以给出日期格式的命令.将显示此日期字符串.但在后面的步骤中,我需要将此日期字符串转换为另一个固定字符串.我可以操作命令将获得的whcih格式,我可以操作输出(或用户将看到的内容).
我无法运行该命令两次,因为它非常耗时.


更新:

我找到了类似解决方案的东西:

# Modify $user_format …
Run Code Online (Sandbox Code Playgroud)

linux bash parsing date

8
推荐指数
2
解决办法
2万
查看次数

标签 统计

bash ×2

date ×2

linux ×2

awk ×1

parsing ×1