我有一个Shell脚本,它使用用户输入的日期和时间参数。 日期为mm/dd/yyyy,时间为HH:MM。 什么是最简单的方法来检查用户输入正确的日期[如月应少于12 ....对于时间MM应小于60 ... 我们是否有任何内置函数在UNIX中为检查时间戳?检查用户在UNIX中输入的日期和时间
4
A
回答
2
您可以使用unix 日期工具为您解析并验证它,然后测试返回码例如
为0的有效日期,返回代码:
[email protected]:~$ date -d "12/12/2000 13:00"
Tue Dec 12 13:00:00 GMT 2000
[email protected]:~$ echo $?
0
了无效的日期,返回代码1:
[email protected]:~$ date -d "13/12/2000 13:00"
date: invalid date `13/12/2000 13:00'
[email protected]:~$ echo $?
1
可以通过使用改变由日期接受的输入格式+格式选项(man date)
把它放在一起作为一个小s CRIPT:
usrdate=$1
date -d "$usrdate" > /dev/null 2>&1
if [ $? -eq 0 ]; then
echo "Date $usrdate was valid"
else
echo "Date $usrdate was invalid"
fi
0
你可以使用grep
检查输入符合正确的格式:
if ! echo "$INPUT" | grep -q 'PATTERN'; then
# handle input error
fi
其中PATTERN是匹配所有有效输入,只有输入有效定期expressino。我留给你建造这种模式;-)。
0
(晚答案)
东西,你可以使用:
...
DATETIME=$1
#validate datetime..
tmp=`date -d "$DATETIME" 2>&1` ; #return is: "date: invalid date `something'"
if [ "${tmp:6:7}" == "invalid" ]; then
echo "Invalid datetime: $DATETIME" ;
else
... valid datetime, do something with it ...
fi
相关问题
- 1. 检查日期时间输入和数据库日期时间
- 2. 在android中比较输入日期和时间与当前日期和时间
- 3. C# - 如何获得日期和时间的用户输入
- 4. 在UNIX数据库中检查日期
- 5. 如何检查日期时间进入
- 6. Moment.js检查日期时间是否在一组日期和时间之间
- 7. 用户输入的Python检查日
- 8. 检查日期时间
- 9. Rails日期时间输入和微秒
- 10. 批次检查日期和时间
- 11. 检查模式日期和时间后
- 12. 检查输入的日期时间是否在2个日期时间值的范围之内
- 13. 将用户输入的时间转换为UNIX时间? [Android]
- 14. 日期到Unix时间戳
- 15. Unix时间戳和mysql日期:birthdate
- 16. jq日期和unix时间戳
- 17. 使用PHP在mysql中插入/输出日期和时间?
- 18. 在Swing中使用InputVerifier来检查日期和时间
- 19. 日期时间检查具体时间
- 20. 在表单输入栏中自动插入日期和时间?
- 21. 的onclick当前日期和时间的日期时间,本地输入
- 22. 检查用户输入的日期是否在IF语句内的2个日期之间? C#
- 23. Mysql - unix时间与日期时间
- 24. Unix时间戳VS日期时间
- 25. 在用户的时区获取用户的日期和时间
- 26. 在整个执行时间检查stdin上的用户输入
- 27. 在C中加入日期和时间#
- 28. 在oracle11g中插入日期和时间
- 29. 检查是否mysql插入日期时间在表中的日期时间之间
- 30. 检查日期和日期之间的给定日期
不回答你的问题,但是这总是我的错误:“日期为MM/DD/YYYY “:该格式仅在北美使用。考虑使用ISO-8601格式yyyy-mm-dd。 – Raedwald 2011-01-06 12:48:36
LOL,让混蛋进入UNIX时间,如果他们不知道,他们是不值得的用户! – Anders 2011-01-06 12:56:17