【5】java之日期处理类

一、Date 类

​ 在 Java 里提供有一个 java.util.Date 类,可以直接获取当前的日期时间。

范例:获取当前的日期时间

public class TestDemo {
    public static void main(String args[]) {
        Date date = new Date();
        System.out.println(date);
    }
}

Date 类定义了如下几个重要方法:

1.1 无参构造:public Date()

1.2 有参构造:public Date(long date)

将 long 型转换成 Date型,同样的就有Date装换成 long;

1.3 Date转换为long:public long getTime()

//时间戳

范例:Date 与 long 间的转换

public class TestDemo {
    public static void main(String args[]) {
        long cur = System.currentTimeMillis();
        // long 转 Date
        Date date = new Date(cur);
        System.out.println("Date 类型日期:" + date);
        // Date 转 long
        System.out.println("long 类型日期:" + date.getTime());
    }
}

二、String 和 Date 转换

​ java.text 是一个专门实现国际化程序的开发包,java.text.SimpleDateFormat 类是一个专门处理格式的类,将 Date 型的对象转换为 String 型的形式显示。主要使用的是以下方法:

2.1 构造方法

public SimpleDateFormat(String pattern) // 需要传递转换格式

2.2 将 Date 转换为 String

public final String format(Date date)

2.3 将 String 转换为 Date

public Date parse(String source) throws ParseException

2.4 常见的用String 表示日期的格式

​ 现在关键就在于转换格式上,常见的转换单位:年(yyyy)月(MM)日(dd)时(HH)分(mm)秒(ss)毫秒(SSS)。

范例:将日期格式化显示(将 Date变成 String)

public class TestDemo {
    public static void main(String args[]) throws ParseException {
        Date date = new Date();
        System.out.println(date);

        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
        // Date 转 String
        String sDate = sdf.format(date);
        System.out.println(sDate);

        String birthday = "1995-01-11 20:22:34.342";
        // String 转 Date
        date = sdf.parse(birthday);
        System.out.println(date);
    }
}

​ 注意,在将字符串转换为Date类时,如果日期给出的月不对,那么会自动进行进位;如果与转换的格式不符合,那么就会出现异常。

三、Calendar 类

Date 类 和 SimpleDateFormat 类两个往往是一起使用的,Calendar 这个类往往是进行一些简单计算。

范例:取得当前的日期时间

Calendar 提供了一个方法:int get(int field),该方法可以获取指定时间分量所对应的值

public class TestDemo {
    public static void main(String args[]) throws ParseException {
        Calendar cal = Calendar.getInstance();
        int year = cal.get(Calendar.YEAR);
        int month = cal.get(Calendar.MONTH) + 1; // 月份从0开始
        int day = cal.get(Calendar.DAY_OF_MONTH);
        System.out.println(year + "-" + month + "-" + day);
    }
}

​ 如果是日期计算,Calendar 要比 Date 省事。如果要使用Date 进行天的计算,需要使用 long 完成了。

四、总结

日期型使用 java.util.Date 表示;​ 

Date 与 String 类直接的转换依靠的是 SimpleDateFormat 里 format() 和 parse() 方法;

String 与 基本类型之间的转换依靠的是 包装类 与 String.valueOf() 方法;

long 与 Date 转换依靠的是 Date 类提供的构造以及 getTime() 方法。

posted @ 2022-06-17 11:41  才华充电中  阅读(58)  评论(0编辑  收藏  举报