时间日期类

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了时间日期类相关的知识,希望对你有一定的参考价值。

1.Date类

在JDK的java.util包中提供了一个Date类用于表示时间和日期.

 1 public static void main(String[] args) {
 2         //无参构造方法, 用来创建当前日期时间的Date对象 
 3         Date d = new Date();
 4         System.out.println(d);
 5         
 6         //long型参数作为构造方法, 用来创建指定时间的日期对象, 参数表示毫秒数
 7         Date d1 = new Date(1495119792068L);
 8         System.out.println(d1);
 9         
10         //long getTime() 返回Date对象表示的毫秒数
11         Date d2 = new Date();
12         long time = d2.getTime();
13         System.out.println(time);
14         
15         //void setTime(Date date) 设置指定Date时间
16         Date d3 = new Date();
17         d3.setTime(1495119792068L);
18         System.out.println(d3);
19     }

运行结果为

技术分享

 

2.Calendar类

Calendar类可以通过特定的方法设置和读取日期中的指定部分(比如 年,月,日,时,分,秒)

Calendar类是一个抽象类, 不可以被实例化, 需要用静态方法getInstance()来获取Calendar对象

 获取日期中指定部分

 1 public static void main(String[] args) {
 2         Calendar c = Calendar.getInstance();
 3 
 4         // int get(int field) 返回给定日历字段的值
 5         int year = c.get(Calendar.YEAR); 
 6         int month = c.get(Calendar.MONTH) + 1; 
 7         int day = c.get(Calendar.DATE); 
 8 
 9         int hour = c.get(Calendar.HOUR); 
10         int minute = c.get(Calendar.MINUTE);
11         int second = c.get(Calendar.SECOND);
12 
13         System.out.println(year + "年" + month + "月" + day + "日" + hour + "时"
14                 + minute + "分" + second + "秒");
15     }

运行结果为

技术分享

 

设置日期

 1 public static void main(String[] args) {
 2         Calendar c = Calendar.getInstance();
 3         
 4         //void set(int year, int month, int day) 设置Calendar对象的年月日三个字段
 5         c.set(2008,7,8);
 6         int year = c.get(Calendar.YEAR);
 7         int month = c.get(Calendar.MONTH)+1;
 8         int day = c.get(Calendar.DATE);
 9         
10         System.out.println(year+"年"+month+"月"+day+"日");
11 }

运行结果为

技术分享

 1 public static void main(String[] args) {
 2         Calendar c = Calendar.getInstance();
 3         
 4         //void set(int field, int value) 为指定日历字段设定值
 5         c.set(c.YEAR, 2008);
 6         c.set(c.MONTH, 7);
 7         c.set(c.DATE, 8);
 8         int year = c.get(Calendar.YEAR);
 9         int month = c.get(Calendar.MONTH)+1;
10         int day = c.get(Calendar.DATE);
11         
12         System.out.println(year+"年"+month+"月"+day+"日");
13 }

运行结果为

技术分享

 

添加日期

 1 public static void main(String[] args) {
 2         Calendar c = Calendar.getInstance();
 3         c.set(2008,7,8);
 4         
 5         //void add(int field, int amount) 根据日历规则, 为指定日期字段添加/减去指定值
 6         c.add(Calendar.MONTH, 2);
 7         
 8         int year = c.get(Calendar.YEAR);
 9         int month = c.get(Calendar.MONTH)+1;
10         int day = c.get(Calendar.DATE);
11         
12         System.out.println(year+"年"+month+"月"+day+"日");
13 }

运行结果为

技术分享

3.DateFormat类

DateFormat类用于将Date对象格式化成固定格式的字符串

或者将固定格式的字符串转换成Date对象

 1 public static void main(String[] args) {
 2         Date d = new Date();
 3         
 4         // Full格式的日期格式器对象
 5         DateFormat fullFormat = DateFormat.getDateInstance(DateFormat.FULL);
 6         // Long格式的日期格式器对象
 7         DateFormat longFormat = DateFormat.getDateInstance(DateFormat.LONG);
 8         // medium格式的日期/时间 格式器对象
 9         DateFormat mediumFormat = DateFormat.getDateInstance(DateFormat.MEDIUM);
10         // short格式的日期/时间 格式器对象
11         DateFormat shortFormat = DateFormat.getDateInstance(DateFormat.SHORT);
12         
13         // 打印格式化的日期或者日期/时间
14         System.out.println("当前日期的完整格式为: "+fullFormat.format(d));
15         System.out.println("当前日期的长格式为: "+longFormat.format(d));
16         System.out.println("当前日期的普通格式为: "+mediumFormat.format(d));
17         System.out.println("当前日期的短格式为: "+shortFormat.format(d));
18 }

技术分享

 

DateFormat中还提供了一个parse()方法, 能够将一个字符串解析成Date对象, 要求字符串必须符合日期/时间格式要求

1 public static void main(String[] args) throws ParseException {
2         DateFormat df = DateFormat.getDateInstance(DateFormat.LONG);
3         String d = "2017年10月19日";
4         System.out.println(df.parse(d));
5 }

技术分享

 

4.SimpleDateFormat类

 使用DateFormat类格式化日期的时候是固定的字符串, 不够灵活

JDK提供了SimpleDateFormat类, 该类是DateFormat的子类

SimpleDateFormat类可以使用new关键字创建实例对象

 1 public static void main(String[] args) throws ParseException {
 2         // 构造方法传入一个格式化字符串参数
 3         SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
 4         
 5         // String format(Date date) 将一个Date格式化为指定格式的日期
 6         String date = sdf.format(new Date());
 7         System.out.println(date);
 8         
 9         // Date parse(String source) 将给定字符串解析成Date
10         Date d = sdf.parse("2017/10/19 09:32:52");
11         System.out.println(d);
12 }

运行结果为

技术分享

 

以上是关于时间日期类的主要内容,如果未能解决你的问题,请参考以下文章

在片段中创建日期选择器

JS代码片段:一个日期离现在多久了

sql 日期转换代码片段 - Dato,120,konvertere

日期选择器对话框在片段中不起作用[关闭]

vscode 用户代码片段 vue初始化模板 Snippet #新加入开头注释 自动生成文件名 开发日期时间等内容

Android Navigation java.language.IllegalStateException 片段类未设置