1、格式化字符串日期转化为可计算可比较日期
应用场景:如果时间的输入参数是一个字符串,那么比较两个日期就比较困难,计算两个日期之间差了多长时间更困难。
经过查阅资料,发现日期可以通过字符串转化成long型的时间,这个时间表示的是从1970-1-1开始的毫秒时间。
代码如下:
public long parseTime(String date)
{
DateFormat dft = new SimpleDateFormat("yyyy-MM-dd");
long time=0;
try {
Date d = dft.parse(date);
time=d.getTime();
} catch (ParseException e) {
System.out.println("时间错误");
System.exit(0);
}
return time;
}
这里输入日期的格式需要为“年-月-日”,对于不同的应用场景,只需修改格式串中的字符串。如果格式错误,会给出提示信息,并且退出运行,这个报错机制也可自行修改。
2、long型毫秒时间转化回字符串时间
public String timeToString(long time)
{
DateFormat dft = new SimpleDateFormat("yyyy-MM-dd");
Date reparse=new Date();
reparse.setTime(time);
return dft.format(reparse);
}
虽然long型的时间方便计算,但是字符串的时间方便观察,所以也需要将其转化回来。
3、将字符串日期转化成星期
/**
* 将字符串类型的时间信息转化成具体的星期几
* @param time 字符串类型的时间
* @return 周一到周五0-4,周六5,周日6
*/
public int parseTime(String time)
{
DateFormat dft = new SimpleDateFormat("yyyy-MM-dd");
int day=0;
try {
Date d = dft.parse(time);
Calendar cal = Calendar.getInstance();
cal.setTime(d);
day = cal.get(Calendar.DAY_OF_WEEK);
} catch (ParseException e) {
System.out.println("错误时间信息");
System.exit(0);
}
if(day==1)
{
return 6;
}
return day-2;
}
这个函数的原型得到的day结果是,星期日:1,星期一到星期六:2-7,这里是为了方便处理我进行了转化。
在学习这一部分内容时,我主要参考了:
https://blog.csdn.net/dashenmepi/article/details/108725254