本篇内容介绍了“Java常用类之日期相关类如何使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
在标准Java类库中包含一个Date类,它的对象表示一个特定的瞬间,精确到毫秒。在网上商城下单时,在对报销单进行审核时,都需要获取当前的时间,通过Date类就可以完成。
例子:Date类的使用
package li.normalclass.date;
import java.util.Date;
public class TestDate {
public static void main(String[] args) {
//获取当前的时间 格式为 yyyyMMddhhmmss
Date date = new Date();//相当于new Date(System.currentTimeMillis())
//操作当前的时间
System.out.println(date.toString());//Sat Aug 06 19:15:28 CST 2022
System.out.println(date.toLocaleString());//2022-8-6 19:16:06
System.out.println(System.currentTimeMillis());//计算从1970年1月1日 0:00:00到目前为止的毫秒数
System.out.println(date.getYear());//122 =2022-1900
System.out.println(date.getMonth());//7 0-11 现在是八月
System.out.println(date.getDate());//6 日
System.out.println(date.getDay());//6 当前为星期六 注:星期日为0
System.out.println(date.getHours());//19 当前为19点
System.out.println(date.getMinutes());//26 当前为26分
System.out.println(date.getSeconds());//16 当前为16秒
System.out.println(date.getTime());//1659785176358 计算从1970年1月1日 0:00:00到目前为止的毫秒数
//获取当前的时间 格式为 yyyyMMdd
java.sql.Date sdate = new java.sql.Date(System.currentTimeMillis());
System.out.println(sdate.toString());//2022-08-06
java.sql.Date sdate2 = java.sql.Date.valueOf("1896-9-10");
System.out.println(sdate2.toString());//1896-09-10
}
}
查看API文档大家可以看到其实Date类中的很多方法已经过时了。JDK1.1之前的Date包含了日期操作、字符串转化为对象等操作。经过JDK1.1之后,日期操作类一般使用Calendar类,而字符串的转化 使用DateFormat类。
Format:格式
DateFormat是一个抽象类,一般使用它的子类SimpleDateFormat类来实现。主要作用就是把时间对象转化为指定格式的字符串。反之,就是把指定格式的字符串转化为时间对象。
字符串----->日期
日期----->字符串
例子:
package li.normalclass.date;
import java.text.*;
import java.util.Date;
/**
* 主要操作:
* DateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//指定识别的格式
*
* Date date = sdf.parse(strdate);//将字符串转换成日期
*
* String strdate2 = sdf.format(date);//将日期转换成字符串
*/
public class TestDateFormat {
public static void main(String[] args) throws ParseException {
String strdate = "1999-12-23 12:12:12";//字符串
//String---->Date
//DateFormat是抽象类,要实例化只能引用它的子类SimpleDateFormat
DateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//指定识别的格式
Date date = sdf.parse(strdate);//将字符串转换成日期
String strdate2 = sdf.format(date);//将日期转换成字符串
System.out.println(strdate2);
}
}
Calendar:日历
例子:
package li.normalclass.date;
import java.util.Calendar;
import java.util.GregorianCalendar;
public class TestCalendar {
public static void main(String[] args) {
//获取当前的时间
Calendar cal = new GregorianCalendar();
// 输出当前的时间
System.out.println(cal);
//java.util.GregorianCalendar[time=1659791839017,areFieldsSet=true,areAllFieldsSet=true,lenient=true,zone=sun.util.calendar.ZoneInfo[id="Asia/Shanghai",offset=28800000,dstSavings=0,useDaylight=false,transitions=31,lastRule=null],firstDayOfWeek=1,minimalDaysInFirstWeek=1,ERA=1,YEAR=2022,MONTH=7,WEEK_OF_YEAR=32,WEEK_OF_MONTH=1,DAY_OF_MONTH=6,DAY_OF_YEAR=218,DAY_OF_WEEK=7,DAY_OF_WEEK_IN_MONTH=1,AM_PM=1,HOUR=9,HOUR_OF_DAY=21,MINUTE=17,SECOND=19,MILLISECOND=17,ZONE_OFFSET=28800000,DST_OFFSET=0]
System.out.println(cal.get(Calendar.YEAR));//2022
System.out.println(cal.get(Calendar.MONTH));//7 0~11 7代表8月
System.out.println(cal.get(Calendar.DATE));//6 代表6号
System.out.println(cal.get(Calendar.DAY_OF_WEEK));//7 代表周六 从周日为1开始计算一周
//改变时间
cal.set(Calendar.DATE,1);//直接指定日期 1号
cal.set(Calendar.MONTH,1);//直接指定月数 2月
cal.add(Calendar.DATE,2);//在设置的日期上再加上两天
System.out.println(cal.get(Calendar.YEAR));//2022 -- 22年
System.out.println(cal.get(Calendar.MONTH));//1 -- 2月
System.out.println(cal.get(Calendar.DATE));//3 -- 3号
System.out.println(cal.get(Calendar.DAY_OF_WEEK));//5 -- 周四
System.out.println(cal.getActualMaximum(Calendar.DATE));//28 -- 指定月一共有多少天
}
}
“Java常用类之日期相关类如何使用”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注亿速云网站,小编将为大家输出更多高质量的实用文章!
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。