java----date和字符串互转

125 阅读2分钟
//1. 将日期Date转换为字符串 simpleDateFormat.format(Date)
public static void test1() {
    Date date = new Date();
    SimpleDateFormat simpleDateFormat1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    String time = simpleDateFormat1.format(date);
    System.out.println("将日期Date转换为字符串:" + time); //2020-08-24 16:00:04
}

//2. 将字符串转换为日期Date  simpleDateFormat.parse(字符串)
public static void test2() {
    try {
        // 字符串 2008年08月18日 20:07:33 -----> Date
        String day = "2008年08月18日 20:07:33";
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
        Date date = simpleDateFormat.parse(day);
        System.out.println("----> 1.格式化后的日期为: " + date);

        // 字符串 20131227085009 -----> Date
        String day2 = "2008-08-18 20:07:33";
        simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        Date date2 = simpleDateFormat.parse(day2);
        System.out.println("----> 2.格式化后的日期为: " + date2);

        // 字符串 20131227085009 -----> 字符串 2013/12/27 08:50:09
        String day3 = "20131227085009";
        simpleDateFormat = new SimpleDateFormat("yyyyMMddHHmmss");
        Date date3 = simpleDateFormat.parse(day3);
        simpleDateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
        String time = simpleDateFormat.format(date3);
        System.out.println("----> 时间文本为: " + time);
    } catch (Exception e) {
        System.out.println("----> Exception: " + e.toString());
    }
}

//3. 将时间戳转换成时间字符串  new Date(毫秒数) ---> Date
public static void test3() {
    long timeStamp = System.currentTimeMillis();
    SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    Date date = new Date(timeStamp);
    String time = simpleDateFormat.format(date);

    System.out.println(timeStamp + "----> 将时间戳转换为字符串: " + time);
}

//4.将时间Date转换成时间戳 Date ----> 毫秒数  Date.getTime()
public static void test4() {
    Date parsedDate = new Date();
    long ts = parsedDate.getTime();
    System.out.println("----> 将时间Date转换成时间戳: " + ts);
}

//5.计算两个时间的差值 字符串 ----> simpleDateFormat.parse(time1) ----> date.getTime()
private static void test5() {
    String time1 = "2016-01-02 00:00:00";
    String time2 = "2013-09-21 00:00:00";
    SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    try {
        Date date1 = simpleDateFormat.parse(time1);
        Date date2 = simpleDateFormat.parse(time2);
        long difference = date1.getTime() - date2.getTime();
        long days = difference / (1000 * 60 * 60 * 24);
        System.out.println("----> 两个时间相距:" + days + "天");

    } catch (Exception e) {
        System.out.println("----> Exception=" + e.toString());
    }
    System.out.println("----------------------------------");
}

//6. 比较两个字符串时间的大小 字符串 ----->simpleDateFormat.parse(字符串) --->Date.after(Date) before equals
private static void test6() {
    String startDateStr = "2020-01-04 10:00";
    String endDateStr = "2020-01-04 11:00";
    SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm");
    try {
        Date startDate = simpleDateFormat.parse(startDateStr);
        Date endDate = simpleDateFormat.parse(endDateStr);
        if (startDate.after(endDate)) {
            System.out.println("startDate.after(endDate)");
        } else if (startDate.equals(endDate)) {
            System.out.println("startDate.equals(endDate)");
        } else {
            System.out.println("startDate.before(endDate)");
        }
    } catch (Exception e) {
        System.out.println(e.getMessage());
    }
}