admin 管理员组文章数量: 1184232
【java】时间格式相关
时间相关
- 时间格式
- 1.改变日期(yyyy-MM-dd)增减天数
- 2.不熟悉的格式转换
- 3.带有时区
- 4.判断一个日期是否在一个特定范围
- 5.判断是否在7天之后
时间格式
yyyy-MM-dd HH:mm:ss SSS
含义:年-月-日 时:分:秒 毫秒
说明:以下内容是我用的比较多的,其实每次写代码基本还是会在网上搜怎么写,有点儿浪费时间,所以记录一下。
1.改变日期(yyyy-MM-dd)增减天数
/*** 此方法是为了改变日期* @param date 原始日期* @param num 改变天数,正数则是加几天,负数则是减几天* @return*/public static String changeDateStr(String date,int num){SimpleDateFormat myFmt=new SimpleDateFormat("yyyy-MM-dd");String dateStr = "";Date dt = null;try {dt = myFmt.parse(date);Calendar rightNow = Calendar.getInstance(); rightNow.setTime(dt); rightNow.add(Calendar.DAY_OF_YEAR, num);// 日期增减num天 dateStr = myFmt.format(rightNow.getTime());} catch (ParseException e) {e.printStackTrace();}return dateStr;}
2.不熟悉的格式转换
第一种:
public static void amANDpm(){try {String timeStr = "1/12/2019 12:17 AM";SimpleDateFormat df = new SimpleDateFormat ("MM/dd/yyyy HH:mm a", Locale.UK);Date time = df.parse(timeStr);SimpleDateFormat df2 = new SimpleDateFormat ("yyyy-MM-dd HH:mm");System.out.println(df2.format(time));} catch (ParseException e) {e.printStackTrace();}}
这块代码是将不熟悉的格式转换成熟悉的格式,代码结果:
还有一些不熟悉的格式:
第二种:
public static void amANDpm2() {try {//转换成特定的格式SimpleDateFormat sdf = new SimpleDateFormat("MMM d, yyyy K:m:s a", Locale.ENGLISH);Date d2 = sdf.parse("Sep 29, 2012 1:00:01 AM");Date d3 = new Date();System.out.println("d2<系统默认> ====== " + d2);System.out.println("d3<系统默认> ====== " + d3);System.out.println("d3<特定格式> ====== " + sdf.format(d3));} catch (Exception e) {e.printStackTrace();}}
这段代码的运行结果:
3.带有时区
1.将日期换成有时区的格式:
public static String parseDateWithZ(String dateStr){String result = "";//此格式只有 jdk 1.7以上才支持 yyyy-MM-dd'T'HH:mm:ss.SSSXXX try {DateFormat df3 = new SimpleDateFormat("yyyy-MM-dd");Date date = df3.parse(dateStr);//特定格式DateFormat df = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssXXX"); //yyyy-MM-dd'T'HH:mm:ss.SSSZresult= df.format(date);System.out.println(result);} catch (Exception e) {e.printStackTrace();}return result;}
此代码结果:(参数:2019-11-10)
2.第二种特殊格式
public static String parseDateWithZ2(String dateStr){String result = "";//此格式只有 jdk 1.7才支持 yyyy-MM-dd'T'HH:mm:ss.SSSXXX try {DateFormat df3 = new SimpleDateFormat("yyyy-MM-dd");Date date = df3.parse(dateStr);//特殊格式SimpleDateFormat df1 = new SimpleDateFormat ("EEE MMM dd HH:mm:ss Z yyyy", Locale.UK);System.out.println("特殊格式:"+df1.format(date));//常用格式DateFormat df2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");System.out.println("常用格式:"+df2.format(date));} catch (Exception e) {e.printStackTrace();}return result;}
代码结果:(参数:2019-11-10)
4.判断一个日期是否在一个特定范围
/*** 判断是否在两个日期之间* @param judgeDate 待判断的日期* @param startDate 起始日期* @param endDate 结束日期* @return true-在两个日期范围内*/public static boolean isMidINdate(String judgeDate,String startDate,String endDate){if(StringUtils.isEmpty(judgeDate)||StringUtils.isEmpty(startDate)||StringUtils.isEmpty(endDate)){return false;}long judge = 0L;if(judgeDate.contains("-")){//是yyyy-MM-dd格式的judge = DateUtil.parse(judgeDate, "yyyy-MM-dd").getTime();//转换格式}else{//直接是long的字符串judge = Long.parseLong(judgeDate);}long start = DateUtil.parse(startDate, "yyyy-MM-dd").getTime();//转换格式long end = DateUtil.parse(endDate, "yyyy-MM-dd").getTime();//转换格式if(judge>=start && judge <=end){return true;}return false;}
举例解释:
1.参数:judgeDate =2019-12-21,startDate=2019-10-17,endDate=2019-12-20,结果:false.
2.参数:judgeDate =2019-12-18,startDate=2019-10-17,endDate=2019-12-20,结果:true.
5.判断是否在7天之后
/*** 判断两个日期是否在7天以后,如果只有一个参数则只判断第一个,有第二个参数再判断第二个日期* @param date1* @param date2* @return 只要与一个日期在7天之后则返回true*/public static boolean isDateOut7Day(String date1,String date2){long date1Time = DateUtil.parse(date1, "yyyy-MM-dd").getTime();//转换格式long judgeTime = System.currentTimeMillis()+ 7 * 24 * 60 * 60 * 1000;if(date1Time>judgeTime){return true;}if(StringUtils.isNotEmpty(date2)){long date2Time = DateUtil.parse(date2, "yyyy-MM-dd").getTime();//转换格式if(date2Time>judgeTime){return true;}}return false;}
举例解释:(当天是2022年8月1日)
1.参数:date1=2022-08-03,date2=2022-08-06
结果:false
2.参数:date1=2022-08-03,date2=2022-08-10
结果:true
3.参数:date1=2022-08-08,date2=2022-08-10
结果:true
4.参数:date1=2022-07-11,date2=2022-07-30
结果:false
本文标签: java时间格式相关
版权声明:本文标题:【java】时间格式相关 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://www.roclinux.cn/p/1698023443a283123.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论