如何比较日期格式
how to compare date format
我的应用程序根据用户设置以不同的格式显示日期。我想测试它是否显示正确的日期格式。我以字符串形式显示日期(2014/12/31)。我不想验证实际日期,而只是验证格式。
例如:当用户选择 yyyy/dd/MM 格式时,它应该以该格式显示它。
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);
}
更多信息在这里
您需要实现自定义解决方案,JavaScript 没有格式日期功能。如果您需要处理多种格式,这可能是一项艰苦的工作和浪费时间。
我建议使用 moment.js,这是一个在 JavaScript 中轻松操作日期的库。
使用示例:
.HTML
<script src="moment.js"></script>
.JS
var now = moment();
now.format("yyyy/dd/MM");
如果你想测试4个模式,那么有4个simpleDateFormat对象,然后依次测试每一个
如果字符串不匹配,那么它将抛出一个可以捕获的异常。
您可以使用正则表达式来检查日期字符串格式,如下所示:
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");
}
}
相关文章:
- Javascript日期格式类似于ISO,但本地
- NodeJS日期格式不起作用
- 将客户端特定的日期格式返回到服务器MVC4
- ui网格日期单元格过滤器,过滤日期格式导致显示错误的日期
- 将Javascript日期转换为ASP.NET日期格式
- 在达到状态之前在Redux Reducer中设置日期格式
- 如何从Angularjs中的新日期获取日期格式
- 如何使用jquery更改为所需的日期格式
- keith wood日期选择器日期格式和语言
- Dygraph更改日期格式
- 确定Twig(或JavaScript)中的国际日期格式,以便在其他地方使用
- javascript和jquery日期格式转换
- 用javascript将日期格式从d/m/yyyy转换为yyyy-mm-dd
- 在Datepicker中将日期格式更改为yyyy-mm-dd
- 在Karma Jasmine单元测试用例中检查日期格式
- 使用不同的日期格式和区域设置创建时刻
- 更改日期选择器上的日期格式
- 以日期计算的天数更改日期格式
- 带有onchange的日期格式
- 如何从区域设置获取日期格式