java【基础】日期操作

时间:2022-06-05 23:20:37

主要是date类,SimpleDateFormat类以及Calendar类的使用。 date表示日期,simpleDateFormat 表示日期格式化,Calendar一般用来做时间的操作,比如加减天数,月数等

public static void main(String[] args) {
// TODO Auto-generated method stub
//获取当前时间
Date d = new Date();
System.out.println(d.getTime());
System.out.println(d);
//获取当前时间转为yyyy-MM-dd HH:mm:ss
DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
System.out.println(df.format(d)); //时间戳转为日期格式(我加了1分钟)
long atime=d.getTime()+60000L;
d.setTime(atime);
System.out.println(df.format(d)); //那如果我想获取上个月怎么办,使用Calendar
Calendar cad = Calendar.getInstance();
//列举下Calendar的使用技巧
//转换为Date对象
System.out.println(cad.getTime());
//将Date对象转换为Calendar
cad.setTime(d);//这之前上面给d在当前时间基础上加了1分钟
System.out.println(cad.getTime()); //给Calendar设置时间 注意month,第一月是0
cad.set(2018,6,17,17,48,20);
System.out.println(cad.getTime()); //对日期进行比较
Calendar cad1 = Calendar.getInstance();
Calendar cad2 = Calendar.getInstance();
System.out.println(cad1.compareTo(cad2));
//当cad2减去20个小时
cad1.add(cad1.HOUR,-20);
System.out.println(cad1.getTime());
System.out.println(cad1.compareTo(cad2)); //获取下时区
System.out.println(cad1.getTimeZone()); //如果我换时区为utc0再观察自己的当前时间发现-8小时
TimeZone tz = TimeZone.getTimeZone("GMT+00:00");
cad2.setTimeZone(tz);
//获取下时区,注意了,不要使用getTime()获取date对象,因为他是使用默认时区来表示的。如果返回date对象那看到的时间还是北京时间
System.out.println(cad2.get(Calendar.HOUR));//日历中的小时变成减去8小时 //这里我们来测试一下,二月份的天数是多少天
Calendar cad3 = Calendar.getInstance();
cad3.set(2018,6,29,17,48,20);
cad3.add(cad1.MONTH,-5);
System.out.println(cad3.getTime());//很不幸这里这里是2月的最后一天,因为2月29号不存在
}