栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

详解JAVA常用的时间操作

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

详解JAVA常用的时间操作

项目中经常有对时间进行处理的需求,下面是一些常用的操作整理,方便以后再次使用以及做相关复习。

1.字符串转换为日期


  public static Date toDate(String dateStr, SimpleDateFormat dateFormat) throws ParseException{
    Date date = null;
    try {
      date = dateFormat.parse(dateStr);
    } catch (ParseException e) {
      logger.debug("Fail to convert String to Date, {}", dateStr);
    }
    return date;
  }

2.时间戳转日期


  public static String dateToTime(long time, SimpleDateFormat dateFormat) throws ParseException{
     String data = null;
     try {
dateFormat.format(new Date(time*1000));  
     } catch (Exception e) {
logger.debug("Fail to convert long to Date, {}", time);
     }
     return data;
  }

3.日期格式化成字符串


  public static String toString(Date date, SimpleDateFormat dateFormat) throws ParseException{
    return dateFormat.format(date);
  }

4.获取指定日期之前或之后的日期 ,十分秒为00:00:00

 
  public static Date getSpecificDate(Date date, int num){
    Calendar todayCal = Calendar.getInstance();
    todayCal.setTime(date);
    Calendar c = Calendar.getInstance();
    c.set(todayCal.get(Calendar.YEAR), todayCal.get(Calendar.MONTH), todayCal.get(Calendar.DAY_OF_MONTH) + num, 0, 0, 0);
    return c.getTime();
  }

5.获取指定日期之前或之后的日期 ,时分秒为当前的

  
  public static Date getSpecificDateAndHhMmSs(Date date,int num){
    Calendar c = Calendar.getInstance(); 
    c.setTime(date); 
    int day=c.get(Calendar.DATE); 
    c.set(Calendar.DATE,day - num); 
    return c.getTime(); 
  }

6.将time类型的时间字符串 转换成 时、分

  
  public static String timeToHHMM(String time){
    return time.substring(0, time.length() - 3);
  }

7.获取某个日期的时、分

  
  public static String getHM(Date date){
    Calendar ca = Calendar.getInstance(); 
    ca.setTime(date);
    Integer hour = ca.get(Calendar.HOUR_OF_DAY);//小时 
    Integer minute = ca.get(Calendar.MINUTE);//分
    String rs_hour = hour.toString();
    String rs_minute = minute.toString();
    if (rs_hour.length() == 1){
      rs_hour = "0" + hour;
    }
    if(rs_minute.length() == 1){
      rs_minute = "0" + minute;
    }
    return rs_hour + ":" + rs_minute;
  }

8.time类型的时间字符串 -->> 零点开始的秒数

  
  public static Integer timeToSeconds(String time){
     String[] timeSplit = null;
     int hours = 0,minutes = 0,seconds = 0;
     try {
timeSplit = time.split(":");
if (timeSplit.length == 2) {
  hours = Integer.valueOf(timeSplit[0])*60*60;
  minutes = Integer.valueOf(timeSplit[1])*60;
}else if(timeSplit.length == 3){
  hours = Integer.valueOf(timeSplit[0])*60*60;
  minutes = Integer.valueOf(timeSplit[1])*60;
  seconds = Integer.valueOf(timeSplit[2]);
}else{
  logger.debug("Fail to convert the time, {}", time);
}
     } catch (Exception e) {
logger.debug("Fail to convert the time, {}", time);
throw e;
     }
    return hours + minutes + seconds;
  }

9.零点开始的秒数转时间 -->> HH-mm-ss

  
  public static String getDuration(int durationSeconds){ 
    int hours = durationSeconds /(60*60); 
    int leftSeconds = durationSeconds % (60*60); 
    int minutes = leftSeconds / 60; 
    int seconds = leftSeconds % 60; 
    StringBuffer sBuffer = new StringBuffer(); 
    sBuffer.append(addZeroPrefix(hours)); 
    sBuffer.append(":"); 
    sBuffer.append(addZeroPrefix(minutes)); 
    sBuffer.append(":"); 
    sBuffer.append(addZeroPrefix(seconds)); 
    return sBuffer.toString(); 
  } 
  public static String addZeroPrefix(int number){ 
    if(number < 10) 
      return "0"+number; 
    else 
      return ""+number; 
  }

10.比较两个日期相差的秒数

  
  public static int getTimeSeconds(Date startDate,Date endDate) {
     long a = endDate.getTime();
     long b = startDate.getTime();
     return (int)((a - b) / 1000);
  }

11.判断两个时间段是否存在交集

  
  public static int getTimeSeconds(Date startDate,Date endDate) {
     long a = endDate.getTime();
     long b = startDate.getTime();
     return (int)((a - b) / 1000);
  }

12.获取指定日期是星期几(1-7分别代表周一至周日)

  
  public static int DayOfWeek(Date date){
    Calendar now = Calendar.getInstance();
    now.setTime(date);
    boolean isFirstDay = (now.getFirstDayOfWeek() == Calendar.SUNDAY);
    int weekday = now.get(Calendar.DAY_OF_WEEK);
    if(isFirstDay){
      weekday = weekday - 1;
      if(weekday == 0){
 weekday = 7;
      }
    }
    return weekday;
  }

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持考高分网!

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/148439.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号