java.util.Date类
System.out.println(new Date()); //当前时间
System.out.println(new Date(0)); //1970.01.01 08:00:00(中国时间,标准从0点开始)
Date date = new Date();
long now = date.getTime(); //输入出毫秒数
long hourBefore = now - 3600000;
Date date1 = new Date(hourBefore); //根据毫秒数构建对象
System.out.println(date1);
System.out.println(date.compareTo(date1)); //比较结果:-1、0、1
java.util.TimeZone类
TimeZone timeZone1 = TimeZone.getDefault();
System.out.println(timeZone1.getDisplayName()); //中国标准时间
System.out.println(timeZone1.getDisplayName(true,1)); //1:中国夏令时, 0:CDT
System.out.println(timeZone1.getDisplayName(true,0, Locale.JAPAN)); //1:中国夏時間, 0:CDT
System.out.println(timeZone1.getDisplayName(Locale.KOREA)); //중국 표준시
System.out.println(timeZone1.getID()); //Asia/Shanghai
TimeZone timeZone2 = TimeZone.getTimeZone("GMT+:01:00");
System.out.println(timeZone2.getDSTSavings());
TimeZone timeZone3 = TimeZone.getTimeZone("Europe/London"); //通过时区id构建对象
System.out.println(timeZone3.getDSTSavings()); //本地标准时间上的 时间量 ,以得到挂钟时间。这就是所谓的 节约时间,3600000
TimeZone.setDefault(timeZone3); //设置默认时区
System.out.println((new SimpleDateFormat("yyyy/MM/dd HH:mm:ss").format(new Date()))); //显示伦敦时间
System.out.println(timeZone1.hasSameRules(timeZone3)); //比较规则,false
System.out.println(timeZone3.observesDaylightTime()); //是否夏令时,true
timeZone3.setID("Asia/Shanghai"); //设置时区ID
ZoneId zoneId = timeZone3.toZoneId(); //转换对象,java.time.ZoneId
SimpleTimeZone simpleTimeZone = new SimpleTimeZone(-28800000,"Asia/Shanghai");
System.out.println(simpleTimeZone.getOffset((new Date()).getTime())); //-28800000,与指定时间戳的时间差
System.out.println(simpleTimeZone.getRawOffset()); //-28800000,GMT offset
java.util.Calendarl类
public class CalendarDemo {
public static void main(String[] args) {
/*
构建对象
new Calendar.Builder().build(); 默认1970/01/01 00:00:00
Calendar.getInstance(),当前时间
Calendar.getInstance(Locale aLocale)
Calendar.getInstance(TimeZone zone)
Calendar.getInstance(TimeZone zone, Locale aLocale)
*/
Calendar calendar = Calendar.getInstance();
System.out.println(calendar.get(Calendar.YEAR)+"/"+ //2023/11/4,实际月份=MONTH+1=12
calendar.get(Calendar.MONTH)+"/"+
calendar.get(Calendar.DAY_OF_MONTH));
System.out.println(calendar.get(Calendar.HOUR)+":"+ //3:14:4
calendar.get(Calendar.MINUTE)+":"+
calendar.get(Calendar.SECOND));
System.out.println(calendar.get(Calendar.AM_PM)); //0:上午,1:下午
// calendar.add(Calendar.MONTH,1); //指定字段加减
// System.out.println(calendar.get(Calendar.YEAR)+"/"+ //2024/0/4
// calendar.get(Calendar.MONTH)+"/"+
// calendar.get(Calendar.DAY_OF_MONTH));
System.out.println(calendar.getActualMaximum(Calendar.MONTH)); //11,字段的最大值
System.out.println(calendar.getActualMinimum(Calendar.MONTH)); //0,字段的最小值
System.out.println(Calendar.getAvailableCalendarTypes()); //[gregory, buddhist, japanese]
// Locale[] localeList = Calendar.getAvailableLocales();
// for(Locale locale: localeList ) System.out.println(locale);
System.out.println(calendar.getCalendarType()); //gregory
System.out.println(calendar.getDisplayName(Calendar.MONTH,1,Locale.CHINA)); //一月,获取名称
//{一月=0, 六月=5, 九月=8, 二月=1, 三月=2, 四月=3, 八月=7, 十一月=10, 七月=6, 五月=4, 十月=9, 十二月=11}
System.out.println(calendar.getDisplayNames(Calendar.MONTH,1,Locale.CHINA));
System.out.println(calendar.getFirstDayOfWeek()); //1,1周的第一天,US:SUNDAY
System.out.println(calendar.getGreatestMinimum(Calendar.MONTH)); //0
System.out.println(calendar.getLeastMaximum(Calendar.MONTH)); //11
System.out.println(calendar.getMaximum(Calendar.MONTH)); //11
System.out.println(calendar.getMinimalDaysInFirstWeek()); //1,一年中第一周所需的最少天数
Date date = calendar.getTime(); //转换成Date
System.out.println(calendar.getTimeInMillis()); //1701677487590,时间戳
TimeZone timeZone = calendar.getTimeZone(); //转换成TimeZone
/*Date、时间戳、TimeZone设置
setTime(Date date)
setTimeInMillis(long millis)
setTimeZone(TimeZone value)
*/
System.out.println(calendar.getWeeksInWeekYear()); //52,一年一共有几周
System.out.println(calendar.getWeekYear()); //2023
calendar.roll(Calendar.DAY_OF_MONTH, -2); //adds value to fields without changing larger fields.
/*
set方法
set(int field, int value)
set(int year, int month, int date)
set(int year, int month, int date, int hourOfDay, int minute)
set(int year, int month, int date, int hourOfDay, int minute, int second)
*/
calendar.setWeekDate(calendar.getWeekYear(),52,1); //指定年、周数、一周中第几天
System.out.println((new SimpleDateFormat("yyyy/MM/dd")).format(calendar.getTime()));
System.out.println(calendar.get(Calendar.SATURDAY)); //上一次星期六到当前时间天数差
/*其他方法
after(Object when) 判断是否在设计之后
before(Object when) 判断是否在时间之前
clear() 设置所有字段undefined
clear(int field) 设置指定字段undefined
clone() 克隆
compareTo(Calendar anotherCalendar) 比较
complete() 设置未设置的字段
computeFields()
computeTime()
isLenient() 日期时间解释是否宽松
isSet(int field) 字段是否设置
isWeekDateSupported()是否支持周日期
setFirstDayOfWeek(int value) 设置一周第一天是星期几
setLenient(boolean lenient) 设置日期时间解释是否宽松
setMinimalDaysInFirstWeek(int value) //设置一年中第一周所需的最少天数
*/
}
}
你若盛开,清风自来