报错:Unparseable date: “2020-08-2023:59:59“
日期: 2020-08-20 分类: 跨站数据测试 326次阅读
DateFormat.parse时间计算中遇到的问题
在做一个给Redis中 key 设置过期时间,在写 DateUtil 的时候,计算时间的时候,因为要判断 当天有效。 通过 new Date() (SimpleDateFormat sdf=new SimpleDateFormat(“yyyy-MM-dd”);
return sdf.format(new Date());)
获取时间再加上今天时间时 " 23:59:59" 。
如果 Date date=sdf.parse(getDate()+" 23:59:59") 。 “23:59:59” 时间前面没有空格,在测试的时候会报错
一个简单的测试
public static void main(String[] args) {
System.out.println(getSeconds()/60/60);
}
java.text.ParseException: Unparseable date: “2020-08-2023:59:59”
at java.text.DateFormat.parse(DateFormat.java:366)
at com.laoxing.robin.common.util.DateUtil.getSeconds(DateUtil.java:22)
at com.laoxing.robin.common.util.DateUtil.main(DateUtil.java:32)
0
前面加了空格就没问题了
Date date=sdf.parse(getDate()+" 23:59:59");
结果 21 当前时间 2:30
不清楚为什么。网上搜也没搜到要的答案。有没有大佬解答一下啊。。。
package com.zyj.robin.common.util;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
/**
* @Author: zyj
* @Date: 2020/8/201:35
*/
public class DateUtil {
//获取今天的日期
public static String getDate(){
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
return sdf.format(new Date());
}
//查询今日剩下的秒数
public static int getSeconds(){
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
try {
//(getDate()+"23:59:59") ," 23:59:59"前面空格掉会报错
Date date=sdf.parse(getDate()+" 23:59:59");
return (int)(date.getTime()-System.currentTimeMillis())/1000;
//return (int)(date.getTime()-new Date().getTime())/1000; // 也行
} catch (ParseException e) {
e.printStackTrace();
}
return 0;//异常抛 0
}
public static void main(String[] args) {
System.out.println(getSeconds()/60/60);
}
}
除特别声明,本站所有文章均为原创,如需转载请以超级链接形式注明出处:SmartCat's Blog
标签:奇怪的问题 java
上一篇: git比较远程仓库和本地仓库之间的差异
精华推荐