时间日期类
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 }
运行结果为
以上是关于时间日期类的主要内容,如果未能解决你的问题,请参考以下文章
sql 日期转换代码片段 - Dato,120,konvertere
vscode 用户代码片段 vue初始化模板 Snippet #新加入开头注释 自动生成文件名 开发日期时间等内容
Android Navigation java.language.IllegalStateException 片段类未设置