一、时间日期
1、Date类
Date类表示特定的一个瞬间(需要导入java.util.Date类)
System.out.println(new Date()); //Tue Nov 24 11:44:04 CST 2020
2、DateFormat类
java.text.DateFormat是时间日期格式化子类的抽象类,是 Date 对象与 String 对象之间进行转换
因为 DateFormat 为抽象类不能直接使用,所以需要常用的子类 java.text.SimpleDateFormat,这个类需要一个格式来指定格式化,其表示方法为:
public SimpleDateFormat(String pattern)
其中 pattern 是一个字符串,表示日期时间的自定义格式
格式:
表示 | 意思 |
---|---|
y | 年 |
M | 月 |
d | 日 |
H | 时 |
m | 分 |
s | 秒 |
如:
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
public class NewDate {
public static void main(String[] args){
//创建 Date 对象
Date date = new Date();
//创建日期格式对象,并指定格式化方式
DateFormat format = new SimpleDateFormat("yyyy 年 MM 月 dd 号");
String timestamp = format.format(date);
System.out.println(timestamp);
}
}
输出:
将 String 对象转换为 Date 对象,使用 parse 方法
import java.text.ParseException;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
public class ParseDemo {
public static void main(String[] args) throws ParseException {
//将 String 对象转换为 Date 对象
DateFormat date = new SimpleDateFormat("yyyy年MM月dd");
String str = "2020年11月25日";
Date date2 = date.parse(str);
System.out.println(date2);
}
}
输出:
2、Calendar类
Calendar是日历类,它是抽象类,不能直接闯将对象,需要通过静态方法创建,返回子类对象;
如:
import java.util.Calendar;
public class CalendarClass {
public static void main(String[] args){
Calendar calendar = Calendar.getInstance();
System.out.println(calendar);
}
}
常用方法
get(int field) 返回给定的日历字段
set(int field,int value) 返回给定的日历字段设置为给定值
add(int field,int value) 根据日历的规则,为给定的日历字段添加或减去指定的时间量
getTime() 返回一个表示此 Calendar 时间值的 Date 对象
常见的成员变量
字段 | 意义 |
---|---|
YEAR | 年 |
MONTH | 月(是从0开始的,需要加1) |
DAY_OF_MONTH | 几号 |
HOUR | 小时,12小时制 |
HOUR_OF_DAY | 24小时制 |
MINUTE | 分 |
CECOND | 秒 |
DAY_OF_WEEK | 一周其中的一天 |
get()方法:来获取指定字段的值
import java.util.Calendar;
public class CalendarGet {
public static void main(String[] args){
Calendar times = Calendar.getInstance();
//年
int year = times.get(Calendar.YEAR);
//月
int month = times.get(Calendar.MONTH) + 1;
//天
int day = times.get(Calendar.DAY_OF_MONTH);
System.out.println(year + "年" + month + "月" + day + "日");
}
}
输出:
set() 方法:设置指定字段的值
package Demooen;
import java.util.Calendar;
public class CalendarSet {
public static void main(String[] args){
Calendar cal = Calendar.getInstance();
cal.set(Calendar.YEAR,2025); //设置指定的年份
int year = cal.get(Calendar.YEAR); //获取年
int month = cal.get(Calendar.MONTH) + 1; //获取月
int day = cal.get(Calendar.DAY_OF_MONTH); //获取月
System.out.println(year + "年" + month + "月" + day + "日");
}
}
输出:
add() 方法:对指定日历字段的值进行加减操作,如果第二个参数为正数则加航帮派那一辆,如果为负数则减去偏移量
package Demooen;
import java.util.Calendar;
public class CalenderAdd {
public static void main(String[] args){
Calendar calendar = Calendar.getInstance();
int year = calendar.get(Calendar.YEAR);
int month = calendar.get(Calendar.MONTH) + 1;
int day = calendar.get(Calendar.DAY_OF_MONTH);
System.out.println(year + "年" + month + "月" + day + "日"); //2020年11月25日
//使用add增减
calendar.add(Calendar.YEAR,2); //加两年
calendar.add(Calendar.MONTH,-3); //减3天
int year1 = calendar.get(Calendar.YEAR);
int month1 = calendar.get(Calendar.MONTH) + 1;
int day1 = calendar.get(Calendar.DAY_OF_MONTH);
System.out.println(year1 + "年" + month1 + "月" + day1 + "日"); //2022年8月25日
}
}
输出:
getTime() 方法:拿到对应的 Date 对象
import java.util.Calendar;
import java.util.Date;
public class CalendarGetTime {
public static void main(String[] args){
Calendar calendar = Calendar.getInstance();
Date date = calendar.getTime();
System.out.println(date);
}
}
输出:
二、System类
1、currentTimeMIllis方法:是获取当前系统时间与1970年1月1日00:00点之间的差值(单位毫秒 ms)
System.out.println(System.currentTimeMillis()); //1606300362963
打印一个程序运行的时间
public class currentTimeMillissss {
public static void main(String[] args){
long start = System.currentTimeMillis();
for(int i=0; i<1000; i++ ){
System.out.println(i);
}
long end = System.currentTimeMillis();
System.out.println(end - start + "ms");
}
}
输出:
2、arraycopy方法:数组的拷贝,System.arraycopy 参数有:
参数名 | 类型 | 含义 |
---|---|---|
src | Object | 源数组 |
srcPos | int | 源数组索引起始位置 |
dest | Object | 目标数组 |
length | int | 复制元素个数 |
import java.util.Arrays;
public class ArrayCopyDemo {
public static void main(String[] args){
int[] a = new int[] {1,2,3,4,5}; //源数组
int[] b = new int[] {6,7,8,9,10}; //目标数组
System.arraycopy(a,0, b,0,3); //从a的开始复制到b的开始(索引从0开始),长度为3
System.out.println(Arrays.toString(b)); //打印b数组
}
}
输出: