2017-08-04 44 views
-2

我正在创建日志并推送到logstash。 logstash服务器的日期格式是以下目标表单。在Linux服务器中,我可以使用date命令将本地日期/时间转换为日志文件。如何使用date命令在Linux服务器中获取以下格式。以下命令的格式是什么?我可以将格式设置为TZ ='CEST'日期+“%字段”。我试图设置几个格式指定,但在月份的日期不能得到字符串'th'。另外我不明白日期的最后一个字段'221'。任何帮助?将日期转换为指定格式linux

目标服务器格式为:2017年8月4日,22:30:45.221

+1

最后一个字段包含小数秒(即,最后一个字段是'45.221'秒)。你确定*这是logstash服务器支持的唯一格式吗?那很不寻常。 – larsks

+1

https://stackoverflow.com/questions/2495459/formatting-the-date-in-unix-to-include-suffix-on-day-st-nd-rd-and-th – 2017-08-04 18:45:14

回答

1

试试这个代码:

#!/bin/sh 
DaySuffix() { 
    case `date +%d` in 
    1|21|31) echo "st";; 
    2|22) echo "nd";; 
    3|23) echo "rd";; 
    *)  echo "th";; 
    esac 
} 
date "+%B %-d`DaySuffix` %Y, %T.%3N" 

结果现在:2017年8月4日,12:04:49.750

帮助来源:Formatting the date in unix to include suffix on day (st, nd, rd and th)

+0

IKrom @这是一个聪明的方法格式化以获取用户定义的日期格式。 @jww - 我在bash脚本中使用date命令将日期提供给bash脚本中的命令输出。所以贴在这里。 – arunp

+0

@arunp如果它帮助你,请设置答案的绿旗。谢谢 )。 – Ikrom

+0

是的,它的工作原理。绿色为绿色。 – arunp