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

简介: 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();
        }
}

实验结果

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0JlX2luc2lnaHRlZA==,size_16,color_FFFFFF,t_70.png

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0JlX2luc2lnaHRlZA==,size_16,color_FFFFFF,t_70-20220920224550429.png

20200729165217957.png

时间工具类

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

相关文章
|
1月前
|
JSON 前端开发 Java
震惊!图文并茂——Java后端如何响应不同格式的数据给前端(带源码)
文章介绍了Java后端如何使用Spring Boot框架响应不同格式的数据给前端,包括返回静态页面、数据、HTML代码片段、JSON对象、设置状态码和响应的Header。
132 1
震惊!图文并茂——Java后端如何响应不同格式的数据给前端(带源码)
|
2月前
|
Java API
Java时间戳教程
本文详细介绍Java中时间戳的处理方法,包括获取当前时间戳、使用`java.time`包、时间戳与日期的相互转换及格式化等。示例代码展示了如何利用`System.currentTimeMillis()`和`java.time.Instant`获取时间戳,以及如何通过`Date`和`ZonedDateTime`进行日期转换和时区处理。随着Java 8引入的`java.time`包,日期时间操作变得更加强大和便捷,推荐在新项目中优先采用。
|
4月前
|
SQL Java Unix
Android经典面试题之Java中获取时间戳的方式有哪些?有什么区别?
在Java中获取时间戳有多种方式,包括`System.currentTimeMillis()`(毫秒级,适用于日志和计时)、`System.nanoTime()`(纳秒级,高精度计时)、`Instant.now().toEpochMilli()`(毫秒级,ISO-8601标准)和`Instant.now().getEpochSecond()`(秒级)。`Timestamp.valueOf(LocalDateTime.now()).getTime()`适用于数据库操作。选择方法取决于精度、用途和时间起点的需求。
65 3
|
3月前
|
缓存 Java 数据处理
|
4月前
|
Java 编译器 开发者
Java演进问题之Truffle处理不同编程语言的源代码或中间格式如何解决
Java演进问题之Truffle处理不同编程语言的源代码或中间格式如何解决
|
3月前
|
Java
Java模拟文件发送给服务器,服务器将文件转发给其他用户,并保存到服务器本地,其他用户可以接收,并保存到本地磁盘,支持各种文件格式,并解决通信中服务器怎么区分客户端发来的文件类型
Java模拟文件发送给服务器,服务器将文件转发给其他用户,并保存到服务器本地,其他用户可以接收,并保存到本地磁盘,支持各种文件格式,并解决通信中服务器怎么区分客户端发来的文件类型
|
4月前
|
Java 数据库
使用java.sql.Timestamp处理时间戳
使用java.sql.Timestamp处理时间戳
|
5月前
|
Java 区块链
用Java将ico格式转 PNG/JPG等格式
用Java将ico格式转 PNG/JPG等格式
64 1
|
5月前
|
Java C语言
Java微信语音amr格式转mp3格式
Java微信语音amr格式转mp3格式
|
5月前
|
Java 存储 数据库
如何用JAVA基于时间戳回放历史数据?
如何用JAVA基于时间戳回放历史数据?
111 4