我的应用程序根据用户设置以不同格式显示日期。我想测试它显示正确的日期格式。我将显示的日期作为字符串(2014/12/31)。我不想验证实际日期,只想验证格式。
例如:当用户选择yyyy / dd / MM格式时,它应以该格式显示。
答案 0 :(得分:1)
1。)尝试使用类似SimpleDateFormat
Date date = null;
boolean checkformat;
try {
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy/dd/MM");
dateFormat.setLenient(false);
date = dateFormat.parse("2013/25/09");
} catch (ParseException ex) {
ex.printStackTrace();
}
if (date == null) {
checkformat = false;
} else {
checkformat = true;
}
System.out.println(checkformat);
如上所述检查。
2。)其他方法可以是使用正则表达式,但是您必须在应用程序中内置一些支持的数据格式正则表达式,并相应地进行选择。在花括号内围绕{2}, {2}, {4}
值进行游戏以准备正则表达式。
public static void main(String[] args) throws ParseException {
String input = "2014/12/31";
boolean checkformat;
if (input.matches("([0-9]{4})/([0-9]{2})/([0-9]{2})")) // for yyyy/MM/dd format
checkformat = true;
else
checkformat = false;
System.out.println(checkformat);
}
更多信息here
答案 1 :(得分:0)
您需要实现自定义解决方案,JavaScript没有格式化日期功能。如果你需要处理几种格式,这可能是一项艰苦的工作,浪费时间。
我建议使用moment.js,一个用于在JavaScript中轻松操作日期的库。
用法示例:
<强> HTML 强>
<script src="moment.js"></script>
<强> JS 强>
var now = moment();
now.format("yyyy/dd/MM");
答案 2 :(得分:0)
如果你想测试4个模式,那么就有4个simpleDateFormat对象并依次测试每个对象
如果String不匹配,那么它将抛出一个可以捕获的异常。
答案 3 :(得分:-1)
您可以使用正则表达式检查日期字符串格式,如下所示:
public static void main(String[] args) {
String date = "2014/11/01";
Pattern pattern = Pattern.compile("\\d{4}/\\d{2}/\\d{2}");
Matcher matcher = pattern.matcher(date);
if (matcher.matches()) {
System.out.printf("the date string match format:%s", "yyyy/mm/dd");
}
}