Java将毫秒(时间戳)转时分秒格式或者年月日

将毫秒值(currentTimeMillis)转换为(年-月-日 时-分-秒)的形式,只需一行代码

 //首先获取当前的毫秒值
     long currentTimeMillis = System.currentTimeMillis();
     /**
      * 转换为年月日时分秒的形式,得到的currentTime就是转换之后的值了
      * yyyy-MM-dd HH-mm-ss
      * 年-月-日 时-分-秒
      */
     String currentTime = new SimpleDateFormat("yyyy-MM-dd HH-mm-ss").format(currentTimeMillis);

如果说你只想要"时-分-秒"

 String currentTime = new SimpleDateFormat("HH-mm-ss").format(currentTimeMillis);

计算获得时间戳后转时分秒格式,附实验结果

 /**
  * @Author: Be.insighted
  * Description:
  * @date Create on 2020/7/14 16:35
  **/
 •
 public class TimeUtils{  
 •
 /**
      * 把时间戳转换为:时分秒
      *
      * @param millisecond :毫秒,传入单位为毫秒
      */
         public static String getTimeString(final long millisecond) {
         if (millisecond < 1000) {
             return "0" + "秒";
         }
         long second = millisecond / 1000;
         long seconds = second % 60;
         long minutes = second / 60;
         long hours = 0;
         if (minutes >= 60) {
             hours = minutes / 60;
             minutes = minutes % 60;
         }
         String timeString = "";
         String secondString = "";
         String minuteString = "";
         String hourString = "";
         if (seconds < 10) {
             secondString = "0" + seconds + "秒";
         } else {
             secondString = seconds + "秒";
         }
         if (minutes < 10 && hours < 1) {
             minuteString = minutes + "分";
         } else if (minutes < 10){
             minuteString =  "0" + minutes + "分";
         } else {
             minuteString = minutes + "分";
         }
         if (hours < 10) {
             hourString = hours + "时";
         } else {
             hourString = hours + "" + "时";
         }
         if (hours != 0) {
             timeString = hourString + minuteString + secondString;
         } else {
             timeString = minuteString + secondString;
         }
         return timeString;
     }
  
     public static Date convertTimeStamp2Date(long timeStamp) {
         SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
         Date date = new Date(timeStamp);
         try {
             date = df.parse(df.format(date));
         } catch (ParseException e) {
             log.error("时间格式化错误");
         }
         return date;
     }
  
     public static long dateToStamp(Date date, int hour, int minute, int second) {
             LocalDateTime timestamp =         date.toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime();
             return timestamp.withHour(hour).withMinute(minute).withSecond(second).atZone(ZoneId.systemDefault()).toInstant().toEpochMilli();
         }
 }

实验结果

时间工具类

 public class DateTimeUtils {
  
     public static final String DATE_FORMAT_DATETIME_SIMPLE = "yyMMddHHmmss";
     /**
      * 年-月-日
      */
     public static final String DATE_FORMAT_DATEONLY = "yyyy-MM-dd";
  
     /**
      * 年-月-日
      */
     public static final String DATE_FORMAT_DATEONLY_MONTH = "yyyyMM";
     /**
      * 年-月-日 时分秒
      */
     public static final String DATETIME_FORMAT_DATEONLY = "yyyy-MM-dd HH:mm:ss";
  
     /**
      * 年-月-日 时分
      */
     public static final String DATE_FORMAT_DATE = "yyyy-MM-dd HH:mm";
  
     /**
      * dateTime formatter
      */
     public static final DateTimeFormatter DATETIME_FORMATTER = DateTimeFormatter.ofPattern(DATETIME_FORMAT_DATEONLY);
     /**
      * date formatter
      */
     public static final DateTimeFormatter DATE_FORMATTER = DateTimeFormatter.ofPattern(DATE_FORMAT_DATEONLY);
  
     private static final ZoneId ZONE = ZoneId.systemDefault();
  
     public static String formatDateTimeString(long unixTime, String format) {
         if (unixTime == 0) {
             return "";
         }
         LocalDateTime dateTime = toLocalDateTime(unixTime);
         Date date = date(dateTime);
         SimpleDateFormat formator = new SimpleDateFormat(format);
         return formator.format(date);
     }
  
     public static String formatDateTimeString(long unixTime) {
         return formatDateTimeString(unixTime, DATETIME_FORMAT_DATEONLY);
     }
  
     /**
      * 毫秒转为分
      *
      * @param second
      * @return
      */
     public static String getGapTime(long second) {
         if (second != 0L) {
             second = second / 1000;
         }
         //转换天数
         long days = second / 86400;
         //剩余秒数
         second = second % 86400;
         //转换小时数
         long hours = second / 3600;
         //剩余秒数
         second = second % 3600;
         //转换分钟
         long minutes = second / 60;
         //剩余秒数
         second = second % 60;
         String s = days + "天" + hours + "时" + minutes + "分" + second + "秒";
         if (0 < days) {
             return s;
         } else {
             return hours + "时" + minutes + "分" + second + "秒";
         }
     }
  
     /**
      * 获取String类型时间
      *
      * @return
      */
     public static String convertCalender2String() {
         SimpleDateFormat df = new SimpleDateFormat("yyyyMMddHHmm");
         Calendar calendar = Calendar.getInstance();
         return df.format(calendar.getTime());
     }
  
     /**
      * java.time.LocalDateTime --> java.util.Date
      *
      * @param localDateTime
      * @return
      */
     public static Date date(LocalDateTime localDateTime) {
         if (localDateTime == null) {
             return null;
         }
         Instant instant = localDateTime.atZone(ZONE).toInstant();
         return Date.from(instant);
     }
  
  
     /**
      * 将字符串转换成日期,只到年月日
      * @param str
      * @return
      */
     public static Date strToDate(String str, String format) {
         try {
             if (StringUtils.isBlank(format)) {
                 format = DATETIME_FORMAT_DATEONLY;
             }
             SimpleDateFormat simpleDateFormat = new SimpleDateFormat(format);
             return simpleDateFormat.parse(str);
  
         } catch (Exception e) {
             e.printStackTrace();
         }
         return null;
     }
  
  
     /**
      * 将Date日期转换成String
      *
      * @param dateDate
      * @return
      */
     public static String dateToStr(Date dateDate, String formatter) {
         SimpleDateFormat simpleDateFormat = new SimpleDateFormat(formatter);
         String dateString = simpleDateFormat.format(dateDate);
         return dateString;
     }
  
     /**
      * 将Date日期转换成String
      *
      * @param dateDate
      * @return
      */
     public static String dateToStr(Date dateDate) {
         SimpleDateFormat formatter = new SimpleDateFormat(DATE_FORMAT_DATEONLY);
         String dateString = formatter.format(dateDate);
         return dateString;
     }
  
  
     public static LocalDateTime toLocalDateTime(Date date){
  
         Instant instant = date.toInstant();
         ZoneId zone = ZoneId.systemDefault();
         return LocalDateTime.ofInstant(instant, zone);
     }
  
     public static LocalDateTime toLocalDateTime(long dateLong){
  
         return toLocalDateTime(new Date(dateLong));
     }
  
     public static Date toDate(LocalDateTime localDateTime){
  
         return Date.from(localDateTime.atZone(ZoneId.systemDefault()).toInstant());
     }
  
     public static Date toDate(LocalDate localDate){
  
         return Date.from(localDate.atStartOfDay().atZone(ZoneId.systemDefault()).toInstant());
     }
  
     public static Date toDate(LocalTime localTime) {
  
         LocalDate localDate = LocalDate.now();
         LocalDateTime localDateTime = LocalDateTime.of(localDate, localTime);
         ZoneId zone = ZoneId.systemDefault();
         Instant instant = localDateTime.atZone(zone).toInstant();
         return  Date.from(instant);
     }
  
     public static long toLong(LocalDateTime localDateTime){
  
         return  localDateTime.atZone(ZoneId.systemDefault()).toInstant().toEpochMilli();
     }
  
     public static long toLong(LocalTime localTime){
  
         LocalDate localDate = LocalDate.now();
         LocalDateTime localDateTime = LocalDateTime.of(localDate, localTime);
         return  localDateTime.atZone(ZoneId.systemDefault()).toInstant().toEpochMilli();
     }
  
     public static long toLong(LocalDate localDate){
  
         LocalDateTime localDateTime = localDate.atStartOfDay();
         return  localDateTime.atZone(ZoneId.systemDefault()).toInstant().toEpochMilli();
     }
  
     public static boolean isToday(LocalDateTime datetime) {
         LocalDateTime now = LocalDateTime.now();
         return (now.getYear() == datetime.getYear()) && (now.getMonthValue() == datetime.getMonthValue()) && (now.getDayOfMonth() == datetime.getDayOfMonth());
     }
  
 }

 

参考文章:

https://blog.csdn.net/Be_insighted/article/details/107341664

https://blog.csdn.net/Goner_java/article/details/122239684

 

posted @ 2022-09-20 22:48  nakano_may  阅读(6358)  评论(0编辑  收藏  举报