java的时间处理类----日历类Calendar类,TimeZone类时区相关类
作者:互联网
Calendar类
定义:
- Calendar是一个抽象类,它用于表示日历
- 不能使用构造器来创建Calendar对象。但它提供了几个静态getInstance()方法来获取Calendar对象,这些方法根据TimeZone,Locale类来获取特定的Calendar,如果不指定TimeZone、Locale(时区),则使用默认的TimeZone、Locale来创建Calendar
Calendar与Date的相互转换
- Calendar -----> Date:通过Calendar的getTime();获得Date对象
import java.util.Calendar;
import java.util.Date;
public class Time {
public static void main(String[] args) throws InterruptedException {
Calendar c = Calendar.getInstance();
Date time = c.getTime();
System.out.println(c);
System.out.println(time);
}
}
- 结果
- Date: ----->Calendar:通过Calendar的setTime(Date date)方法
import java.util.Calendar;
import java.util.Date;
public class Time {
public static void main(String[] args) throws InterruptedException {
Date date = new Date();
Calendar c = Calendar.getInstance();
c.setTime(date);
System.out.println(date);
System.out.println(c);
}
}
- 结果
Calendar类的常用方法
- void add(int field, int amount):根据日历的规则,为给定的日历字段添加或减去指定的时间量。
- int get(int field):返回指定日历字段的值。
- int getActualMaximum(int field):返回指定日历字段可能拥有的最大值。例如月,最大值为11。
- int getActualMinimum(int field):返回指定日历字段可能拥有的最小值。例如月,最小值为0。
- void roll(int field, int amount):与add()方法类似,区别在于加上amount后超过了该字段所能表示的最大范围时,也不会向上一个字段进位。
- void set(int field, int value):将给定的日历字段设置为给定值。
- void set(int year, int month, int date):设置Calendar对象的年、月、日3个字段的值。
- void set(int year, int month, int date, int hourOfDay, int minute, intsecond):设置Calendar对象的年、月、日、时、分、秒6个字段的值。
- 代码
import java.time.Month;
import java.util.Calendar;
import java.util.Date;
public class Time {
public static void main(String[] args) throws InterruptedException {
Calendar c = Calendar.getInstance();
//取出年
System.out.println(c.get(Calendar.YEAR));
//取出月 1月从0开始
System.out.println(c.get(Calendar.MONTH));
//取出日
System.out.println(Calendar.DATE);
//设置为2019年1月1日 1:1:1
c.set(2019,1,1,1,1,1);
System.out.println(c.getTime());
//增加一年
c.add(Calendar.YEAR,1);
System.out.println(c.getTime());
}
}
- 结果
TimeZone类时区相关类
定义
- 定义:TimeZone是一个抽象类,不能调用其构造器来创建实例,但可以调用它的静态方法:getDefault()或getTimeZone()得到TimeZone实例
相关方法
- static String[] getAvailableIDs():获取Java所支持的所有时区ID。
- static TimeZone getDefault():获取运行机器上默认的时区。
- String getDisplayName():获取该TimeZone对象的时区名称。
- String getID():获取该时区的ID。
- static TimeZone getTimeZone(String ID):获取指定ID对应的TimeZone对象。
import java.util.Arrays;
import java.util.TimeZone;
public class Time {
public static void main(String[] args) throws InterruptedException {
//获得java支持的时区
String[] ids = TimeZone.getAvailableIDs();
System.out.println("java支持的时区:"+ Arrays.toString(ids));
//获取机器上默认的时区对象
TimeZone my = TimeZone.getDefault();
//根据时区对象,获取时区ID
System.out.println("系统默认时区ID:"+my.getID());
//根据时区对象,获取时区名称
System.out.println("系统默认时区名称:"+my.getDisplayName());
//获取指定ID对应的TimeZone对象的时区名称
System.out.println("GNT的时区名称:"+TimeZone.getTimeZone("GNT").getDisplayName());
}
}
- 结果
标签:java,int,类时区,System,----,println,TimeZone,Calendar,out 来源: https://blog.csdn.net/qq_45147076/article/details/120223626