废话不多说,弄完睡觉,直接上代码
package com.xiaojie.test;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
/**
* @author xiaojie
* @version 1.0
* @description: Calendar代码
* @date 2022/1/20 23:19
*/
public class CalendarDemo {
public static void main(String[] args) throws ParseException {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
Date date = sdf.parse("2021-12-26 13:14:15");
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
System.out.println("获取当前年份>>>>>>>>>>>>>>" + calendar.get(Calendar.YEAR));
//月份是从0开始的
System.out.println("获取当前月份>>>>>>>>>>>>>>" + (calendar.get(Calendar.MONTH) + 1));
System.out.println("获取当前日期在当前月份第几天>>>>>>>>>>>>>>" + calendar.get(Calendar.DATE));
System.out.println("获取当前日期在当前月份第几天>>>>>>>>>>>>>>" + calendar.get(Calendar.DAY_OF_MONTH));
System.out.println("获取当前日期在当前年份第几天>>>>>>>>>>>>>>" + calendar.get(Calendar.DAY_OF_YEAR));
System.out.println("获取当前日期在当前月份是第几周>>>>>>>>>>>>>>" + calendar.get(Calendar.WEEK_OF_MONTH));
System.out.println("获取当前日期在当前年份是第几周>>>>>>>>>>>>>>" + calendar.get(Calendar.WEEK_OF_YEAR));
//1-7分别是周日、一、二、三、四、五、六
System.out.println("获取当前日期是星期几>>>>>>>>>>>>>>>>>>>>>>" + calendar.get(Calendar.DAY_OF_WEEK));
System.out.println("获取当前日期的时间小时 12小时计时制>>>>>>>>>>>>>>>>>>>>>>" + calendar.get(Calendar.HOUR));
//0表示上午,1-表示下午
System.out.println("获取当前日期的时间为上午还是下午>>>>>>>>>>>>>>>>>>>>>>" + calendar.get(Calendar.AM_PM));
System.out.println("获取当前日期的时间小时 24小时值>>>>>>>>>>>>>>>>>>>>>>" + calendar.get(Calendar.HOUR_OF_DAY));
System.out.println("获取当前日期的时间分钟>>>>>>>>>>>>>>>>>>>>>>" + calendar.get(Calendar.MINUTE));
System.out.println("获取当前日期的时间秒数>>>>>>>>>>>>>>>>>>>>>>" + calendar.get(Calendar.SECOND));
System.out.println("获取当前日期的时间毫秒>>>>>>>>>>>>>>>>>>>>>>" + calendar.get(Calendar.MILLISECOND));
//第二种设置日历方式
Calendar calendar1 = Calendar.getInstance();
calendar1.set(Calendar.YEAR, 2022);
calendar1.set(Calendar.MONTH, 0);
calendar1.set(Calendar.DATE, 20);
// calendar.set(Calendar.HOUR,13); //12小时制
calendar1.set(Calendar.HOUR_OF_DAY, 13);//24小时制
calendar1.set(Calendar.MINUTE, 14);
calendar1.set(Calendar.SECOND, 15);
System.out.println("获取时间>>>calendar1>>>>>>" + sdf.format(calendar1.getTime()));
//第三种
Calendar calendar2 = Calendar.getInstance();
calendar2.set(2022, 0, 21);//时分秒默认补齐
System.out.println("获取日期>>>calendar2>>>>>>>>>" + calendar2.getTime());
//第四种
Calendar calendar3 = Calendar.getInstance();
calendar3.set(2022, 0, 21, 13, 30);//时分秒默认补齐
System.out.println("获取日期>>>calendar3>>>>>>>>>>" + calendar3.getTime());
//第五种
Calendar calendar4 = Calendar.getInstance();
calendar4.set(2022, 0, 21, 13, 14, 15);//时分秒默认补齐
System.out.println("获取日期>>>calendar4>>>>>>>>>>>>" + calendar4.getTime());
}
}
执行结果如下图
坑一、
你会发现12月26日竟然是当前年份的第一周,这个搞得我有点凌乱啊
我是百思不能得解啊,终于后来我想明白了,这JAVA是TMD(甜蜜的)外国人写的,你有没有发现西方有个节日,对你没想错,就是圣诞节,我! 擦 !擦 !擦 !哦 麦噶扥 !!!原来西方人过完圣诞节后就开始新的第一周了。I Wish every day is merry, not just Christmas
所以如果仅仅是为了计算日期是当前年份的第几周,那么只需要把当前日期减去6之后,就可以实现啦。
坑二、
这个大部分人应该知道,一周的第一天是周日,而不是星期一所以Calendar.DAY_OF_WEEK的1-7分别代表周日、周一、周二、周三、周四、周五、周六。
坑三、
月份并不像我们认为的月份是从1开始的,月份在Calendar中是从0开始的,所以聪明的你一定知道我想说啥了。Calendar.MONTH中 0-11依次代表1-12月份,所以写代码时候需要注意了啊0是1月份,1是2月份以此类推。。。。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/18476.html