本类是一个日期时间格式转换工具类类

原创 2018年04月16日 20:27:17

/**
 * 本类是一个日期时间格式转换工具类类,给大家做一个参考
 * Java 8 中 Date与LocalDateTime、LocalDate、LocalTime互转
 * Java 8中 java.util.Date 类新增了两个方法,分别是from(Instant instant)和toInstant()方法

 * 参考了部分网络代码https://www.cnblogs.com/exmyth/p/6425878.html

* @author 张永志  1279938986@qq.com

 */
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.*;
import java.time.format.DateTimeFormatter;
import java.util.Date;

public class Transform {
    /**
     * Obtains an instance of Date from an Instant object.
     */
    
    public static Date from(Instant instant) {
        try {
            return new Date(instant.toEpochMilli());
        } catch (ArithmeticException ex) {
            throw new IllegalArgumentException(ex);
        }
    }

    // Converts this Date object to an Instant.
    public  static  Instant toInstant(Date date) {
        return Instant.ofEpochMilli(date.getTime());
    }
    
    /**
     *
    // 01. java.util.Date --> java.time.LocalDateTime
     * 这两个方法使我们可以方便的实现将旧的日期类转换为新的日期类,具体思路都是通过Instant当中介,
     * 然后通过Instant来创建LocalDateTime(这个类可以很容易获取LocalDate和LocalTime),
     * 新的日期类转旧的也是如此,将新的先转成LocalDateTime,然后获取Instant,接着转成Date,具体实现细节如下:
     * @param date
     * @return
     */
    public  static  LocalDateTime  UDateToLocalDateTime(java.util.Date date) {
        
        Instant instant = date.toInstant();
        ZoneId zone = ZoneId.systemDefault();
        return LocalDateTime.ofInstant(instant, zone);
    }

    /**
     *  02. java.util.Date --> java.time.LocalDate
     * @param date
     * @return
     */
    public  static  LocalDate UDateToLocalDate( java.util.Date date) {
       
        Instant instant = date.toInstant();
        ZoneId zone = ZoneId.systemDefault();
        LocalDateTime localDateTime = LocalDateTime.ofInstant(instant, zone);
        return localDateTime.toLocalDate();
    }

    /**
     *  java.util.Date --> java.time.LocalTime
     * @param date
     * @return
     */
    public   static  LocalTime  UDateToLocalTime( java.util.Date date ) {
       
        Instant instant = date.toInstant();
        ZoneId zone = ZoneId.systemDefault();
        LocalDateTime localDateTime = LocalDateTime.ofInstant(instant, zone);
        return localDateTime.toLocalTime();
    }


    /**
     * java.time.LocalDateTime --> java.util.Date
     * @param localDateTime
     * @return
     */
    public  static  Date LocalDateTimeToUdate(LocalDateTime localDateTime ) {
        //LocalDateTime localDateTime = LocalDateTime.now();
        ZoneId zone = ZoneId.systemDefault();
        Instant instant = localDateTime.atZone(zone).toInstant();
        return  Date.from(instant);
    }


    /**
     * java.time.LocalDate --> java.util.Date
     * @param localDate
     * @return
     */
    public static   Date LocalDateToUdate(LocalDate localDate) {
        //LocalDate localDate = LocalDate.now();
        ZoneId zone = ZoneId.systemDefault();
        Instant instant = localDate.atStartOfDay().atZone(zone).toInstant();
        return  Date.from(instant);
    }

    /*
     *  java.time.LocalTime --> java.util.Date
     */
    public static  Date LocalTimeToUdate(LocalTime localTime) {
       // LocalTime localTime = LocalTime.now();
        LocalDate localDate = LocalDate.now();
        LocalDateTime localDateTime = LocalDateTime.of(localDate, localTime);
        ZoneId zone = ZoneId.systemDefault();
        Instant instant = localDateTime.atZone(zone).toInstant();
        //java.util.Date date = Date.from(instant);
        return Date.from(instant);
    }
    /*
     *  String ->LocalDateTime
     */
    public static String LocalDateTimetoString(LocalDateTime ldt){
        DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
        //LocalDateTime time = LocalDateTime.now();
        return df.format(ldt);
        
        //LocalDateTime ldt = LocalDateTime.parse("2017-09-28 17:07:05",df);
        //System.out.println("LocalDateTime转成String类型的时间:"+localTime);
        //System.out.println("String类型的时间转成LocalDateTime:"+ldt);
        //return null;
    }
    /**
     *08.LocalDateTime->String
     *
     * @param dateTime  时间字符串格式必须是:yyyy-MM-dd HH:mm:ss模式
     * 也可以根据自己的需求修改DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
     * @return
     */
    
    public static LocalDateTime StringToLocalDateTime(String dateTime){
        DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
        return LocalDateTime.parse(dateTime,df);        
        
    }
    /**
     * 09.Date->String
     *String =(new SimpleDateFormat("格式")).format(Date);
     * @return
     */
    public static String DateToString(Date date){
        SimpleDateFormat format1 = new SimpleDateFormat("yyyy-MM-dd");  
         SimpleDateFormat format2 = new SimpleDateFormat("yyyy年MM月dd日");  
        return format1.format(date);
        
    }
    /** 10.  String->Date
     *   Date = (new SimpleDateFormat("格式")).parse(String);
     */
    public static Date StringToDate(String dateString){
        SimpleDateFormat format1 = new SimpleDateFormat("yyyy-MM-dd");
        try {
            return format1.parse(dateString);
        } catch (ParseException e) {
            // TODO 自动生成的 catch 块
            e.printStackTrace();
        }
        return null;
    }
    //测试
    public static void main(String[] args) {
        System.out.println(StringToDate("2018-04-16"));
        System.out.println(DateToString(new Date()));
        LocalDateTime ldt=StringToLocalDateTime("2018-04-17 16:30:30");
        System.out.println(ldt);
        System.out.println(LocalDateTimetoString(ldt));
    }
}

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zhang8882554/article/details/79965923

Java的图片处理工具类【转】

文章出处:Java的图片处理工具类 import java.awt.AlphaComposite; import java.awt.Color; import java.awt.Font; impor...
  • woshizhangliang999
  • woshizhangliang999
  • 2015-09-15 17:49:05
  • 807

百度翻译API工具类

  • 2017年08月30日 19:13
  • 15KB
  • 下载

java开发中常用的日期时间工具类 DateUtil

java开发中常会用到的 日期时间工具类。 package org.demo; import java.text.DecimalFormat; import java.text.ParseExce...
  • Liyatao_BeiJing
  • Liyatao_BeiJing
  • 2015-11-20 18:01:33
  • 1396

java工具类

  • 2013年12月26日 20:54
  • 40KB
  • 下载

java月份区间计算

  • 2014年04月19日 12:55
  • 2KB
  • 下载

Android日期/时间选择器(工具类)

/** * 日期用法:DataPickDialogUtil dataPickDialogUtil = new DataPickDialogUtil(当前类.this); dataPickDialo...
  • qq_1125213018
  • qq_1125213018
  • 2015-12-22 16:01:46
  • 565

为大家提供一个好的时间工具类DateTime

此类的灵感来源于C# 虽然网上有什么date4j,但是jar太纠结了,先给出源码,可以继承到自己的util包中,作为一个资深程序员,我相信都有不少好的util工具类,我也希望经过此次分享,能带动技术...
  • yakson
  • yakson
  • 2014-10-29 15:30:41
  • 4151

JAVA时间操作工具类封装

继上一篇文件操作工具类,奉上时间操作工具类
  • dly120219891208
  • dly120219891208
  • 2014-06-26 09:59:37
  • 612

方法中怎样调用本类中的方法

知道调用其他类的方法用new A().方法;却忘了怎么调用本类中的方法/笑cry,提示下用关键字this。...
  • xiyangyang8110
  • xiyangyang8110
  • 2016-09-29 20:01:54
  • 792

Java成员变量是自身、本类对象

如题,假如java类里的成员变量是自身的对象,则新建该类对象时内存中怎么分配空间,我感觉似乎死循环了。 不过我想的肯定是错的,因为很多类的成员变量是自身对象,并且绝对无错,举个例子: Clas...
  • nima1994
  • nima1994
  • 2016-06-03 15:43:45
  • 1017
收藏助手
不良信息举报
您举报文章:本类是一个日期时间格式转换工具类类
举报原因:
原因补充:

(最多只允许输入30个字)