java日期互转:LocalDateTime、String、TimeStamp、Long、Instant、Date

由于java版本的迭代,一个使用java开发的项目中可能出现多种日期对象,例如LocalDateTime、LocalDate、Date,不像C#只有一个DateTime,因此在各种日期格式或者对象之间的转换显得有点复杂,总是记不住,在需要用到时总是需要依靠搜索引擎,有点浪费时间,所以特意把常用的转换场景总结如下:

1、 LocalDateTime转为String、TimeStamp、Long、Instant、 Date

        System.out.println("----------------LocalDateTime----------------");
        //LocalDateTime -> String
        String localDateTimeToString = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
        System.out.println("LocalDateTime -> String:  " + localDateTimeToString);
        //LocalDateTime -> TimeStamp
        Timestamp localDateTimeToTimeStamp = Timestamp.valueOf(LocalDateTime.now());
        System.out.println("LocalDateTime -> TimeStamp:  " + localDateTimeToTimeStamp);
        //LocalDateTime -> Long
        Long localDateTimeToLong = Timestamp.valueOf(LocalDateTime.now()).getTime();
        System.out.println("LocalDateTime -> Long:  " + localDateTimeToLong);
        //LocalDateTime -> Instant
        Instant localDateTimeToInstant = LocalDateTime.now().atZone(ZoneId.systemDefault()).toInstant();
        System.out.println("LocalDateTime -> Instant:  " + localDateTimeToInstant);
        //LocalDateTime -> Date
        Date LocalDateTimeToDate = Date.from(LocalDateTime.now().atZone(ZoneId.systemDefault()).toInstant());
        System.out.println("LocalDateTime -> Date:  " + LocalDateTimeToDate);

2、String转为LocalDateTime、 Date

        System.out.println("----------------String----------------");
        //String -> LocalDateTime
        LocalDateTime stringToLocalDateTime =
                LocalDateTime.parse("2018-03-11 15:30:11", DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
        System.out.println("String -> LocalDateTime:  " + stringToLocalDateTime);
        //String -> Date
        try {
            Date stringToDate = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse("2018-03-11 15:30:11");
            System.out.println("String -> Date:  " + stringToDate);
        } catch (ParseException ex) {

        }

3、Timestamp转为LocalDateTime、 Date

        System.out.println("---------------Timestamp-----------------");
        //Timestamp -> LocalDateTime
        LocalDateTime timeStampToLocalDateTime =
                LocalDateTime.ofInstant(new Timestamp(1520754566856L).toInstant(), ZoneId.systemDefault());
        System.out.println("Timestamp -> LocalDateTime:  " + timeStampToLocalDateTime);
        //Timestamp -> Date
        Date timestampToDate = Date.from(new Timestamp(1520754566856L).toInstant());
        System.out.println("Timestamp -> Date:  " + timestampToDate);

4、Long转为LocalDateTime、 Date

        System.out.println("---------------Long-----------------");
        //Long -> LocalDateTime
        LocalDateTime longToLocalDateTime =
                LocalDateTime.ofInstant(Instant.ofEpochMilli(1520754566856L), ZoneId.systemDefault());
        System.out.println("Long -> LocalDateTime:  " + longToLocalDateTime);
        //Long -> Date
        Date longToDate = new Date(1520754566856L);
        System.out.println("Long -> Date: " + longToDate);

5、Instant转为LocalDateTime、 Date

        System.out.println("----------------Instant----------------");
        //Instant -> LocalDateTime
        LocalDateTime instantToLocalDateTime = LocalDateTime.ofInstant(Instant.now(), ZoneId.systemDefault());
        System.out.println("Instant -> LocalDateTime:  " + instantToLocalDateTime);
        //Instant -> Date
        Date instantToDate = Date.from(Instant.now());
        System.out.println("Instant -> Date:  " + instantToDate);

6、Date转为LocalDateTime、String、TimeStamp、Long、Instant

        System.out.println("----------------Date----------------");
        //Date -> String
        String dateToString = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());
        System.out.println("Date -> String:  " + dateToString);
        //Date -> LocalDateTime
        LocalDateTime dateToLocalDateTime = LocalDateTime.ofInstant(new Date().toInstant(), ZoneId.systemDefault());
        System.out.println("Date -> LocalDateTime:  " + dateToLocalDateTime);
        //Date -> Timestamp
        Timestamp dateToTimestamp = new Timestamp(new Date().getTime());
        System.out.println("Date -> Timestamp:  " + dateToTimestamp);
        //Date -> Long
        Long dateToLong = new Date().getTime();
        System.out.println("Date -> Long: " + dateToLong);
        //Date -> Instant
        Instant dateToInstant = new Date().toInstant();
        System.out.println("Date -> Instant:  " + dateToInstant);

  

原文地址:https://www.cnblogs.com/bestzrz/p/10425870.html

时间: 2024-10-08 14:30:05

java日期互转:LocalDateTime、String、TimeStamp、Long、Instant、Date的相关文章

Java日期格式化之将String类型的GMT,GST日期转换成Date类型

请尊重他人的劳动成果,转载请注明出处:Java日期格式化之将String类型的GMT,GST日期转换成Date类型 http://blog.csdn.net/fengyuzhengfan/article/details/40164721 在实际开发过程中经常会需要将Date类型的数据封装成XML或Json格式在网络上进行传输,另外在将Date类型的数据存到Sqlite数据库中后再取出来的时候只能获取String类型的日期了,这是因为SQLite是无类型的.这样不得不面对将String 类型的日期

Java获取当前时间及String、datetime、date相互转化

一.获取当前系统时间和日期并格式化输出: [java] view plain copy import java.util.Date; import java.text.SimpleDateFormat; public class NowString { public static void main(String[] args) { SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//设置日期格式 Sy

Java日期的格式String类型GMT,GST换算成日期Date种类

请尊重他人的劳动成果.转载请注明出处:Java日期格式化之将String类型的GMT,GST日期转换成Date类型 http://blog.csdn.net/fengyuzhengfan/article/details/40164721 在实际开发过程中常常会须要将Date类型的数据封装成XML或Json格式在网络上进行传输,另外在将Date类型的数据存到Sqlite数据库中后再取出来的时候仅仅能获取String类型的日期了,这是由于SQLite是无类型的.这样不得不面对将String 类型的日

Java日期和时间

java.util包提供了Date类来封装当前的日期和时间,Date类提供两个构造函数聊实例化Date对象. Date()//使用当前日期和时间来初始化对象: Date(long millisec)//接收一个参数,该参数是从1970年1月1日起的毫秒数: 创建Date对象后,可调用以下方法: 序号 方法和描述 1 boolean after(Date date) 若当调用此方法的Date对象在指定日期之后返回true,否则返回false 2 boolean before(Date date)

java日期类型转换总结date timestamp calendar string

用Timestamp来记录日期时间还是很方便的,但有时候显示的时候是不需要小数位后面的毫秒的,这样就需要在转换为String时重新定义格式. Timestamp转化为String: SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//定义格式,不显示毫秒 Timestamp now = new Timestamp(System.currentTimeMillis());//获取系统当前时间 String

java 日期和字符串互转,依据当天整天时间 得到当天最后一秒的日期时间

java 日期和字符串互转.依据当天整天时间   得到当天最后一秒的日期时间 package com.hi; import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; /** * 依据当天整天时间 * 得到当天最后一秒 * 数据库查询时非常有意义 起始天 到结速天 比方按天查询 2014-06-17 00:00:00

java日期处理(Timestamp)

要写一些与数据库连接时的日期处理,pstmt.setDate()的类型是java.sql.Date类型,这种符合规范的类型其实并没有把时分秒存进数据库,所以存取时就应该用setTimestamp()或getTimestamp(). 整理一: 一.往数据库里存日期数据 java.sql.Date 只存储日期数据不存储时间数据       // 会丢失时间数据       preparedStatement.setDate(1, new java.sql.Date(date.getTime()));

java 日期和字符串互转,根据当天整天时间 得到当天最后一秒的日期时间

java 日期和字符串互转,根据当天整天时间   得到当天最后一秒的日期时间 package com.hi; import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; /** * 根据当天整天时间 * 得到当天最后一秒 * 数据库查询时很有意义 起始天 到结速天 比如按天查询 2014-06-17 00:00:00

Java日期时间API系列19-----Jdk8中java.time包中的新的日期时间API类,ZonedDateTime与ZoneId和LocalDateTime的关系,ZonedDateTime格式化和时区转换等。

通过Java日期时间API系列6-----Jdk8中java.time包中的新的日期时间API类中时间范围示意图:可以很清晰的看出ZonedDateTime相当于LocalDateTime+ZoneId. ZonedDateTime是用来处理时区相关的时间,它的各种计算都离不开ZoneId.先看ZoneId. 1. ZoneId 为时区ID,比如Europe/Paris,表示欧洲巴黎时区 1.1 时区相关知识,时区,UTC时间,GMT时间,Unix时间戳 时区 地球自西向东旋转,东边比西边先看到