我有个功能:
public boolean isValidDate(String inDate) {
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:sssZ");
dateFormat.setLenient(false);
try {
dateFormat.parse(inDate.trim());
} catch (ParseException pe) {
return false;
}
return true;
}我需要验证string:'2015-01-06T10:51:26.227+0100‘是date,但是funtion总是返回false。有人能告诉我我的dateDormat:"yyyy-MM-dd'T'HH:mm:sssZ"是否正确吗?我读过很多关于格式化日期的问题,但我认为我的dateFormat仍然不正确。
发布于 2016-08-19 10:59:55
我想格式的:sss部分是不正确的。那将是3秒,没有米利斯和一个丢失的点。
应该是:
yyyy-MM-dd'T'HH:mm:ss.SSSZ要调试这一点:让格式化程序格式化当前日期,然后查看输出,看看它是否与您试图解析的内容相匹配。
以上模式实际上取自SimpleDateFormat -示例部分。
在Java8中,您应该使用新的日期/时间类,如这答案中所描述的那样。
https://stackoverflow.com/questions/39037223
复制相似问题