JAVA 获取系统当前时间、时间格式互相转化工具类

简介: JAVA 获取系统当前时间、时间格式互相转化工具类
import java.time.Clock;
import java.time.Instant;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.format.DateTimeFormatter;
import java.util.Calendar;
import java.util.Date;
import java.util.concurrent.TimeUnit;
/**
 * @Author: JCccc
 * @CreateTime: 2018-09-11
 * @Description:
 *           2018-12-04 1.使用DateTimeFormatter替换了部分SimpleDateFormat, 因为线程安全问题。
 *                      2.后期这个工具类应该需要优化,因为有Instant,这个专门获取时间戳的类
 *           2018-12-12 将SimpleDateFormat相关的方法全部去除替换
 */
public class TimeConversionUtil {
    //计算两个日期直接相隔几天
    public static int daysBetweenCount(String strTime1, String strTime2) {
        DateTimeFormatter ftf = DateTimeFormatter.ofPattern("yyyy-MM-dd");
        LocalDate date1 = LocalDate.parse(strTime1, ftf);
        LocalDate date2 = LocalDate.parse(strTime2, ftf);
        return Math.toIntExact(date1.until(date2, ChronoUnit.DAYS));
    }
    //传入long时间戳 ,转换成格式化的String类型时间
    public static String timeOfLongToStr(long time) {
        DateTimeFormatter ftf = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
        return ftf.format(LocalDateTime.ofInstant(Instant.ofEpochMilli(time), ZoneId.systemDefault()));
    }
    //传入String类型格式化时间,转换成Long类型的时间戳
    public static long timeOfStrToLong(String strTime){
        DateTimeFormatter ftf = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
        LocalDateTime parse = LocalDateTime.parse(strTime, ftf);
        return LocalDateTime.from(parse).atZone(ZoneId.systemDefault()).toInstant().toEpochMilli();
    }
    //通过LocalDateTime获取当前格式化时间
    public  static String getTimeStrNow(){
        //DateTimeFormatter替换了SimpleDateFormat, 因为线程安全问题。
        return LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
    }
    //通过LocalDateTime获取当前格式化时间
    public  static  String getTimeStrNow1(){
        //DateTimeFormatter替换了SimpleDateFormat, 因为线程安全问题。
        return LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
    }
    //获取当前时间戳方法一
    public long getTimeLongOfClock(){
        return Clock.systemDefaultZone().millis();
    }
    //获取当前时间戳方法二
    public long getTimeLongOfCalendar(){
        Calendar calendar = Calendar.getInstance();
        return calendar.getTimeInMillis();
    }
    //获取当前时间戳方法三
    public long getTimeLongOfSystem(){
        return System.currentTimeMillis();
    }
    //获取当前时间戳方法四
    public long getTimeLongOfDate(){
        Date date = new Date();
        return date.getTime();
    }
    //获取当前时间戳五 精确到毫秒
    public  static long getTimeLongOfInstant(){
        Instant now = Instant.now().plusMillis(TimeUnit.HOURS.toMillis(0));
        //   System.out.println("秒数:"+now.getEpochSecond());
        //   System.out.println("毫秒数:"+now.toEpochMilli());
        return now.toEpochMilli();
    }
    //获取当前时间戳六 精确到秒
    public static long getTimeLongOfInstantEpochSecond(){
        Instant now = Instant.now().plusMillis(TimeUnit.HOURS.toMillis(0));
        //   System.out.println("秒数:"+now.getEpochSecond());
        //   System.out.println("毫秒数:"+now.toEpochMilli());
        long longTimeNow=now.getEpochSecond();
        return longTimeNow;
    }
    工具类调试
    public static void main(String[] args) {
        String timeStrNow = getTimeStrNow();
        System.out.println(timeStrNow);
        String s = timeOfLongToStr(getTimeLongOfInstant());
        System.out.println(s);
    }
}


相关文章
|
2天前
|
Java 关系型数据库 API
介绍一款Java开发的企业接口管理系统和开放平台
YesApi接口管理平台Java版,基于Spring Boot、Vue.js等技术,提供API接口的快速研发、管理、开放及收费等功能,支持多数据库、Docker部署,适用于企业级PaaS和SaaS平台的二次开发与搭建。
|
4天前
|
JavaScript Java 关系型数据库
自主版权的Java诊所管理系统源码,采用Vue 2、Spring Boot等技术栈,支持二次开发
这是一个自主版权的Java诊所管理系统源码,支持二次开发。采用Vue 2、Spring Boot等技术栈,涵盖患者管理、医生管理、门诊管理、药店管理、药品管理、收费管理、医保管理、报表统计及病历电子化等功能模块。
|
6天前
|
Java 关系型数据库 MySQL
基于Java的学生成绩管理系统/学生信息管理系统
基于Java的学生成绩管理系统/学生信息管理系统
23 2
|
10天前
|
算法 搜索推荐 Java
java 后端 使用 Graphics2D 制作海报,画echarts图,带工具类,各种细节:如头像切割成圆形,文字换行算法(完美实验success),解决画上文字、图片后不清晰问题
这篇文章介绍了如何使用Java后端技术,结合Graphics2D和Echarts等工具,生成包含个性化信息和图表的海报,并提供了详细的代码实现和GitHub项目链接。
30 0
java 后端 使用 Graphics2D 制作海报,画echarts图,带工具类,各种细节:如头像切割成圆形,文字换行算法(完美实验success),解决画上文字、图片后不清晰问题
|
6天前
|
前端开发 Java 数据库连接
基于Java的校车管理系统(下)
基于Java的校车管理系统(下)
7 0
|
6天前
|
存储 前端开发 Java
基于Java的校车管理系统
基于Java的校车管理系统(上)
12 0
|
6天前
|
Java 数据库
基于java的汽车服务管理系统(Car Service Management System)
基于java的汽车服务管理系统(Car Service Management System)
9 0
|
4月前
|
Java
排名前16的Java工具类
排名前16的Java工具类
28 0
|
Java
排名前16的Java工具类
排名前16的Java工具类
187 0
排名前 16 的 Java 工具类,哪个你没用过?
在Java中,实用程序类是定义一组执行通用功能的方法的类。 这篇文章展示了最常用的Java实用工具类及其最常用的方法。类列表及其方法列表均按受欢迎程度排序。数据基于从GitHub随机选择的50,000个开源Java项目。 希望您可以通过浏览列表来了解