简介
👨💻个人主页:@云边牧风
👨🎓小编介绍:欢迎来到云边牧风破烂的小星球🌝
📋专栏:Java基础知识
🔑本章内容:Java常用实用类
记得 评论📝 +点赞👍 +收藏😽 +关注💞哦~
接着上一节字符串的处理,这节主要是Java的时间和日期
一、时间和日期
1.1概念
Java中,表达日期需要用到以下几个常用类:
java.util. Date
java.util. Calendar
java.text. DateFormat
另外,还有Time类表示具体时间
1.2Date与Calendar
1.2.1Date类
获取当前日期
Date d = new Date();
如:System.out.println(d);
import java.util.Date;
public class Main {
public static void main(String[] args){
Date d = new Date();
System.out.println(d);
}
}
输出为:Fri Oct 06 23:18:55 CST 2023
设置日期
d.setYear(81);//代表相距1900年的年数
d.setMonth(9);//0代表1月
d.setDate(24);//天数
得到的日期为:1981年10月24日
获取日期
d.getXXX();
1.2.2Calendar类
获取当前时间
使用 Calendar 类的 static 方法 getInstance () 可以初始化一个日历对象,默认指向 当前时间 ,如:
Calendar c = Calendar.getInstance ();System.out.println(c.getTime());
import java.util.Calendar;
public class Main {
public static void main(String[] args){
Calendar c = Calendar.getInstance();
System.out.println(c.getTime());
}
}
以上代码得到:Fri Oct 06 23:23:56 CST 2023
设置日历的设定日期
void set ( int year,int month, int date );void set ( int year,int month, int date ,int hour, int minute,int second);
void setTime (Date d);
如:
c.set(2015,5,4);// 0 代表 1 月c.set(194,4,10);// 194 代表公元 194 年c.setTime (new Date());
获取日历的设定日期信息
int get ( int field ) :可以获取有关年份、月份、小时、星期等信息,参数 field 的有效值由 Calendar 的静态常量指定 ,例如: calendar.get ( Calendar.MONTH );getTime () :返回一个 Date 对象getTimeInMillis () :返回长整数,表示 距离 1970 年 1 月 1 日零时零分零秒的毫秒数
import java.util.*;
public class Main {
public static void main(String[] args){
Calendar calendar=Calendar.getInstance();
int year = calendar.get(Calendar.YEAR),
month = calendar.get(Calendar.MONTH)+1,
day = calendar.get(Calendar.DAY_OF_MONTH),
hour = calendar.get(Calendar.HOUR_OF_DAY),
minute = calendar.get(Calendar.MINUTE),
second = calendar.get(Calendar.SECOND);
System.out.print("现在的时间是:");
System.out.print(""+year+"年"+month+"月"+day+"日");
System.out.println(" "+hour+"时"+minute+"分"+second+"秒");
int y = 2012,m = 9,d = 1;
calendar.set(y,m-1,d); //将日历翻到2012年九月一日,注意8表示九月
long time1 = calendar.getTimeInMillis();
y = 2016;
m = 7;
day = 1;
calendar.set(y,m-1,d); //将日历翻到2016年七月一日
long time2 = calendar.getTimeInMillis();
long subDay = (time2-time1)/(1000*60*60*24);
System.out.println(""+new Date(time2));
System.out.println("与"+new Date(time1));
System.out.println("相隔"+subDay+"天");
}
}
现在的时间是:2023年10月6日 23时29分35秒
Fri Jul 01 23:29:35 CST 2016
与Sat Sep 01 23:29:35 CST 2012
相隔1399天
Calendar的常用方法
add (int field, int amount) :增加 field 指定的年份、月份、小时等 数量before (Object o) :是否在某日期 之前after (Object o) :是否在某日期 之后
如:
Calendar c = Calendar.getInstance();
c.set(2001,0,1);
c.add(Calendar.MONTH, 1);
由此我们得到:
compareTo(Calandar a):与另一日历日期比较:
相等返回 0 ;after a 返回 1 ;before a 返回 -1
import java.util.*;
public class Main {
public static void main(String[] args){
Calendar a= Calendar.getInstance();
a.set(2011, 05,28, 19,50, 2); //参数为年 月 日 时 分 秒
Calendar c= Calendar.getInstance();
c.set(2011, 05,28, 19,50, 3);
System.out.println(a.compareTo(c)); //a比c早,返回-1
}
}
-1
1.3日期的格式化
可以使用String类的静态方法format,对日期进行格式化。
format(格式化模式,日期列表):
格式化模式:是一个用双引号括起来的字符序列,该字符序列中的字符由时间格式符和普通字符所构成
String.format( “%tY年%tm月%td日” , new Date(), new Date(), new Date());
日期列表:用逗号分隔的Calendar对象或Date对象
String.format( “%tY年%tm月%td日” , new Date(), new Date(), new Date());
格式化同一日期:用含有“<”的格式符和它前面的格式符格式同一个日期
String.format( “%tY年%<tm月%<td日” , new Date());
1.4练习:
利用线程实现时钟功能
(代码可在评论区求)
结束语:
以上是Jav第五章第3节的全部内容 希望大家喜欢
下一节开始讲第五章第4节:Math类、提供任意精度整数运算的BigInteger类、Random类、数字格式化
喜欢的可以点赞+关注哈 ❤