首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将后续日期更改为两个特定的表单?(linux终端/shell)

如何将后续日期更改为两个特定的表单?(linux终端/shell)
EN

Stack Overflow用户
提问于 2017-04-05 15:55:28
回答 2查看 41关注 0票数 0

如果我在linux终端上键入"date“,它将显示

2017年美国东部时间11月5日11:29

我的问题是,有什么方法可以用以下两种形式来展示它吗?只使用“日期”命令或shell脚本?

4月17日至5日

  • wed都是小写的
  • 4月17日至5日为年月日表格。

17-4-5婚

  • WED都是大写的
  • 17-4-5年月日表格
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-04-05 23:06:00

您可以使用date命令和tr完成所需的任务。我创建了一个脚本,它接受一个parm ($1),并将它(假设是日期)转换为您想要的格式:

代码语言:javascript
复制
tmp()
{
  d8out1="$(date -d $1 +%y-%B-%-d) $(date -d $1 +%a | tr [:upper:] [:lower:])"
  echo $d8out1
  d8out2=$(date -d $1 +"%y-%-m-%-d %^a")
  echo $d8out2
}

日期格式使用下列选项:

代码语言:javascript
复制
%y  -- Two digit year (use %Y (uppercase) for four digits)
%B  -- Full month name (e.g., April)
%-m -- Month number -- the hyphen ("-") says do not pad the field (4 instead of 04)
%-d -- Day of month -- again, the hyphen suppresses padding
%a  -- abbreviated weekday name (e.g. Wed) -- tr is then used to shift the case.
%^a -- abbreviated weekday name -- the caret ("^") says to upshift it

请注意,如果您不关心日期名称的情况,那么第一个版本可以在一个简单的语句中完成,与第二个语句相同(当然,没有插入符号来向上移动日期)。

下面是几个示例运行:

代码语言:javascript
复制
> tmp 04/05/2017
17-April-5 wed
17-4-5 WED

> tmp 12/31/2017
17-December-31 sun
17-12-31 SUN

> tmp 11/30/1965
65-November-30 tue
65-11-30 TUE

希望这能有所帮助!

票数 2
EN

Stack Overflow用户

发布于 2017-04-05 16:19:08

代码语言:javascript
复制
$ date +"%g-%B-$(echo `date +%e`) $(date +%a|tr [:upper:] [:lower:])"                                              
17-April-5 wed
$ date +"%g-$(date +%m|sed 's/^0//')-$(echo `date +%e`) $(date +%a|tr [:lower:] [:upper:])"                        
17-4-5 WED
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43236092

复制
相关文章

相似问题

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