常用类第30天(Date,Calendar,SimpleDateFormat,System)
Date
Date表示特定的瞬间,精确到毫秒。Date类中大部分方法都已经被Calender类中的方法所取代。
时间单位:
- 1秒=1000毫秒
- 1毫秒=1000微秒
- 1微秒=1000纳秒
注意:使用java.util包下的Date
1,创建Date对象
Date date1=new Date();
//按不同格式打印当天日期
System.out.println(date1.toString());
System.out.println(date1.toLocaleString());
//创建昨天的时间(用今天时间减去一天的毫秒值)
Date date2=new Date(date1.getTime()-(60*60*24*1000));
System.out.println(date2.toLocaleString());
2,使用方法after(),before()判断是否在日期之前或之后
//2,使用方法after()before()
System.out.println(date2.after(date1));
System.out.println(date2.before(date1));
3,compare()比较毫秒值,大于返回1,小于返回-1
//3,compare()比较毫秒值,用date1减去date2,得到正数负数或者0
System.out.println(date1.compareTo(date2));
Calendar()
Calender提供了获取或设置各种日历字段的方法
构造方法:
protected Calender(),由于修饰符是protected,所以不能直接创建对象
- 创建对象及打印语法
Calendar calender=Calendar.getInstance();//创建对象,获取当前时间
System.out.println(calendar.getTime().toLocaleString());//打印
2. 获取时间信息(获取的月份从0-11,所以需要加一)
//获取年
int year=calendar.get(Calendar.YEAR);
System.out.println(year+"年");
//获取月,月从0-11,直接获取的话会比实际月份小1,所以需要加1
int month=calendar.get(Calendar.MONTH);
System.out.println(month+1+"月");
//获取日
int day=calendar.get(Calendar.DAY_OF_MONTH);
System.out.println(day+"日");
//获取时间
//小时
int hour=calendar.get(Calendar.HOUR_OF_DAY);//可用HOUR代表12进制,HOUR_OF_DAY代表24进制
System.out.println(hour+"点");
//分钟
int minute=calendar.get(Calendar.MINUTE);
System.out.println(minute+"分");
//秒
int second=calendar.get(Calendar.SECOND);
System.out.println(second+"秒");
3. 修改时间信息,set()和add()方法
//修改时间
//set()方法
Calendar calendar2=Calendar.getInstance();
calendar2.set(Calendar.DAY_OF_MONTH,22);//修改成22号
System.out.println(calendar2.getTime().toLocaleString());
//add()方法
calendar2.add(Calendar.HOUR_OF_DAY,1);//增加一个小时
System.out.println(calendar2.getTime().toLocaleString());
4. 获取月份的最大天数和最小天数(最小天数都是1,月份从第一天开始)
//获取当前月份的最大和最小天数
Calendar calendar2=Calendar.getInstance();
int max=calendar2.getActualMaximum(Calendar.DAY_OF_MONTH);
int min=calendar2.getActualMinimum(Calendar.DAY_OF_MONTH);
System.out.println(max);
System.out.println(min);
SimpleDateFormat
- 一个以与语言环境有关的方式来格式化和解析日期的具体类
- 进行格式化(日期-->文本),解析(文本-->日期)
- 常用的时间模式字母
//1,创建SimpleDateFormat
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
//2,创建date
Date date = new Date();
//格式化date(把日期转成字符串)
System.out.println(date);
String str= sdf.format(date);//需要使用String接收数据
System.out.println(str);
//解析(把字符串转成时间)
Date date2= sdf.parse("1999年02月27日 20:23:12");
System.out.println(date2);
System类
System系统类,主要用于获取系统属性数据和其他操作,构造方法私有
static void arraycopy()//复制数组
//共有五个参数(源数组,复制的开始位置,目标数组,,目标数组的位置,长度)
int arr[] = {1, 23, 4, 12, 53, 42, 32, 14};
int arr1[] = new int[8];
System.arraycopy(arr, 0, arr1, 0, 8);
for (int i = 0; i < arr1.length; i++) {
System.out.println(arr1[i]);
}
static long currentTimeMillis()//获取当前系统时间,返回的是毫秒值
static void gc()//建议JVM赶快启动垃圾回收器回收垃圾
static void exit(int status)//退出JVM,如果参数是0表示正常退出JVM,非0表示异常退出JVM,退出jvm后,下面的代码将不会执行
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?