JAVA中常用的日期转换

JAVA中日期时间的使用

主要记录工作中经常碰到的日期相关操作,本文包含的内容:

  • 日期的类型与转换
  • 日期的比较
  • 获取当前日期

一、日期的类型与转换

日期类型

  • 日期型
  • 时间戳

时间戳类型是指Long类型,代表1970年1月1日0时0分0秒开始到该对应日期所经过的毫秒数

日期转换为字符串

字符串格式

格式 变量定义 示例值
“yyyy-MM-dd HH:mm:ss” SPLIT_PATTERN_DATETIME 2017-09-01 09:45:10
“yyyy-MM-dd” SPLIT_PATTERN_DATE 2017-09-01
“yyyy/MM/dd” SPLIT_PATTERN_DATE2 2017/09/01
“yyyyMMdd” TIGHT_PATTERN_DATE 20170901
“yyyy-MM” SPLIT_PATTERN_MONTH 2017-09
“yyyyMMddHHmmss” TIGHT_PATTERN_DATETIME 20170901094510
“HH:mm:ss” SPLIT_PATTERN_TIME 09:45:10
“HHmmss” TIGHT_PATTERN_TIME 094510

代码示例

    Calendar calendar = Calendar.getInstance();
    Date date1 = calendar.getTime();// 获取系统当前日期
    System.out.println(formate(date1, SPLIT_PATTERN_DATETIME));// 2017-09-01 09:45:10

format函数

    // format函数定义
    public static String formate(Date date, String pattern) {
        if(date==null){
            return "";
        }
           return new SimpleDateFormat(pattern).format(date);
    }  

字符串转换为日期

    String dateStr = "20170901094510";
    Date date3 = parse(dateStr,TIGHT_PATTERN_DATETIME);  // pattern 要与 dateStr对应上
    System.out.println(formate(date3, SPLIT_PATTERN_DATETIME));

parse函数

    public static Date parse(String date, String pattern) {
        try {
            return new SimpleDateFormat(pattern).parse(date);
        } catch (ParseException e) {
            e.printStackTrace();
        }
        return null;
    }

时间戳转换为日期

Long timestamp = Calendar.getInstance().getTimeInMillis();//1504230310000
Date date4 = new Date(timestamp);
System.out.println(date4);//Fri Sep 01 09:45:10 CST 2017
System.out.println(formate(date4, SPLIT_PATTERN_DATETIME));//2017-09-01 09:45:10

小结:

  • 利用java.text.SimpleDateFormat 可以方便的对日期及字符串进行相互转换
  • 获取时间戳的方式:
Long timestamp1 = new Date().getTime();
Long timestamp2 = Calendar.getInstance().getTimeInMillis();
  • 获取日期
Date date4 = new Date(timestamp);//时间戳转换为日期
Date date = new Date();//这样是用当前时间创建了日期

二、日期的比较

Date date3 = parse("20170901094510",TIGHT_PATTERN_DATETIME);
Long timestamp = Calendar.getInstance().getTimeInMillis();
Date date4 = new Date(timestamp);
/*date3先于date4*/
System.out.println(date3.before(date4));// true
System.out.println(date3.equals(date4));// false
System.out.println(date4.after(date3));// true
System.out.println(date4.compareTo(date3)); // 1

三、获取当前日期

Calendar rightNow = Calendar.getInstance();
Date date1 = rightNow.getTime();
Date date2 = new Date();

总结

以上记录了日常日期相关的操作,总结才能对使用到的知识更加熟练。
文章参考了:http://blog.csdn.net/jediael_lu/article/details/43852043

猜你喜欢

转载自blog.csdn.net/linshenggui/article/details/77802013