shell判断字符串格式是否为yyyy-mm-dd
时间: 2023-05-08 21:58:21
浏览: 304
Shell可以通过正则表达式匹配的方式判断一个字符串是否符合yyyy-mm-dd的日期格式。
方法如下:
1. 使用date命令将字符串转换为日期格式
2. 再将转换后的日期格式用"%Y-%m-%d"进行格式化,判断是否等于原字符串
示例代码如下:
```shell
#!/bin/bash
is_date() {
date -d "$1" "+%Y-%m-%d" > /dev/null 2>&1
if [ "$?" -eq 0 ] && [ "$1" == $(date -d "$1" "+%Y-%m-%d") ]; then
return 0 #符合日期格式
return 1 #不符合日期格式
if is_date "2022-01-01"; then
echo "符合日期格式"
echo "不符合日期格式"
if is_date "2022-13-01"; then
echo "符合日期格式"
echo "不符合日期格式"
上述代码中,is_date函数接收一个字符串参数,使用date命令将其转换为日期格式,并用"%Y-%m-%d"格式化。如果格式化后的日期字符串等于原字符串,则返回0,表示符合日期格式;否则返回1,表示不符合日期格式。最后进行测试,输出结果为:
符合日期格式
不符合日期格式
这说明该函数可以判断字符串是否符合yyyy-mm-dd格式。
阅读全文