java 日期函数(笔记)

您所在的位置:网站首页 java格式化日期的函数是什么 java 日期函数(笔记)

java 日期函数(笔记)

2024-07-17 21:26| 来源: 网络整理| 查看: 265

一、java.util.Date

java.util.Date 这个日期类,它的对象表示一个特定的瞬间,精确到毫秒。 本质上也是表示的是一个时间,标准纪元是从 1970.01.01 这天0 点开始到某一个时刻的毫秒数。类型是long

import java.util.Date; public class TestDate { public static void main(String[] args) { Date date = new Date(); System.out.println(date); //Sun Jun 03 12:38:28 CST 2018 } } 1.1 部分源码 public class Date implements java.io.Serializable, Cloneable, Comparable { private transient long fastTime; /** * 构造器 */ public Date() { this(System.currentTimeMillis());//调用下面的构造方法 } /** * 构造器,传入一个long类型的参数; 将传入的时间变化成为指定的时间规范 */ public Date(long date) { fastTime = date; } /** * 比较两个时间:方法 */ public boolean before(Date when) { return getMillisOf(this) < getMillisOf(when); } public boolean after(Date when) { return getMillisOf(this) > getMillisOf(when); } /** * 重写equals 方法 */ public boolean equals(Object obj) { return obj instanceof Date && getTime() == ((Date) obj).getTime(); } /** * 转化为毫秒 */ public long getTime() { return getTimeImpl(); } private final long getTimeImpl() { if (cdate != null && !cdate.isNormalized()) { normalize(); } return fastTime; } } 1.2 API

这个类大量的 setter 和 getter 方法都已经过时了。只有少量的方法可以使用。

二、DateFormat和SimpleDateFormat_时间和字符串的互相转换

这里写图片描述

2.1 API 方法描述String format(Date date)将一个 Date 格式化为日期/时间字符串。Date parse(String source)从给定字符串的开始解析文本,以生成一个日期。

java.text.DateFormat中两个API

2.2 应用案例 import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; public class TestSimpleDateFormat { public static void main(String[] args) { //1. 将日期转化为特定格式的字符串 DateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date date = new Date(); String strDate = format.format(date); System.out.println(strDate); //2018-06-03 13:14:21 //2. 将特定格式的字符串转化为日期 String strDate1 = "2018年06月03日 13时14分21秒"; //注意格式需要匹配 DateFormat format1 = new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒"); try { Date date1 = format1.parse(strDate1); System.out.println(date1);//Sun Jun 03 13:14:21 CST 2018 } catch (ParseException e) { e.printStackTrace(); } } } 三、Calendar和GregorianCalendar

这里写图片描述

Calendar 的很多属性都静态变量,可以通过类名直接访问,就不需要对象了。Calendar. MONTH

使用这个类来替代Date中很多过时的方法。

3.1 Date、String、Calendar类型之间的转化 import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; public class TestCalendar { public static void main(String[] args) { calendarToString(); stringToCalendar(); dateToString(); stringToDate(); dateToCalendar(); calendarToDate(); } private static void calendarToDate() { //6.Calendar转化Date Calendar calendar = Calendar.getInstance(); Date date =calendar.getTime(); } private static void dateToCalendar() { //5.Date 转化Calendar Calendar calendar = Calendar.getInstance(); calendar.setTime(new Date()); } private static void stringToDate() { // 4.String 转化Date String str="2018-6-3"; SimpleDateFormat sdf= new SimpleDateFormat("yyyy-MM-dd"); try { Date birthday = sdf.parse(str); System.out.println(birthday); } catch (ParseException e) { e.printStackTrace(); } } private static void dateToString() { //3.Date 转化String SimpleDateFormat sdf= new SimpleDateFormat("yyyy-MM-dd"); String dateStr=sdf.format(new Date()); System.out.println(dateStr); } private static void stringToCalendar() { // 2.String 转化Calendar String str="2018-06-03"; SimpleDateFormat sdf= new SimpleDateFormat("yyyy-MM-dd"); Date date = null; try { date = sdf.parse(str); } catch (ParseException e) { e.printStackTrace(); } Calendar calendar = Calendar.getInstance(); calendar.setTime(date); System.out.println(calendar.getTime()); } private static void calendarToString() { //1.Calendar 转化 String //获取当前时间的具体情况,如年,月,日,week,date,分,秒等 Calendar calendar = Calendar.getInstance(); //获取实例 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); String dateStr = sdf.format(calendar.getTime()); System.out.println(dateStr); } } 四、其他

java.lang.Date 中诸多方法已经过时,多使用Calendar 中的静态属性替代。

例如:

int getYear() 已过时。 从 JDK 1.1 开始,由 Calendar.get(Calendar.YEAR) - 1900 取代。

int year = Calendar.getInstance().get(Calendar.YEAR);// 获得当前年份 参考

可以参考文档(不推荐) java 日期与字符串之间的转换

深入理解Java:SimpleDateFormat安全的时间格式化

高琪三百集视频



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3