首页 > 编程知识 正文

java线程安全,java线程安全list

时间:2023-05-05 06:07:06 阅读:262717 作者:2692

基本:

Calendar calendar =Calendar.getInstance();int year = calendar.get(Calendar.YEAR); //得到当前时间的年份

int month = calendar.get(Calendar.MONTH) + 1;//获取当前时间的月,这里需要需要月份的范围为0~11,因此获取月份的时候需要+1才是当前月份值

int date = calendar.get(Calendar.DATE); //获取当前多少号(日期)

int day = calendar.get(Calendar.DAY_OF_MONTH);//获取日(好像和上面那个没有什么区别)

int hour = calendar.get(Calendar.HOUR); //获取小时,十二小时制

int hour02 = calendar.get(Calendar.HOUR_OF_DAY);//获取小时,二十四小时制

int minute = calendar.get(Calendar.MINUTE);//获取分

int second = calendar.get(Calendar.SECOND);//获取秒

int weekday = calendar.get(Calendar.DAY_OF_WEEK);//星期,英语国家星期从星期日开始计算

获得当天23时59分59秒,输出:2018-03-22 23:59:59

public static Date getDate(int hour, int minute, intsecond) {

Calendar calendar=Calendar.getInstance();

calendar.set(Calendar.HOUR_OF_DAY, hour); // 设置小时,如果没有,则默认当前时间小时

calendar.set(Calendar.MINUTE, minute); // 设置分钟,如果没有,则默认当前时间分钟

calendar.set(Calendar.SECOND, second); // 设置秒数,如果没有,则默认当前时间秒数

calendar.set(Calendar.MILLISECOND,0);returncalendar.getTime(); // 所以说,如果没有上面的set,输出的就是当前默认的时间毫秒数

}public static voidmain(String[] args) {

Date date= SocialAccountUtils.getDate(23, 59, 59);

System.out.println(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(date));

}

年月日的增减;这里要极度注意:因为月份是从0开始,所以输出为:2010-11-10

public static voidmain(String[] args) {

Calendar instance=Calendar.getInstance();

instance.set(2010, 10, 10); //因为月份是从0开始的,所以只是表示11月

Date time =instance.getTime();

System.out.println(new SimpleDateFormat("yyyy-MM-dd").format(time));

instance.add(Calendar.YEAR,1); //增加一年,负数表示减少一年

instance.add(Calendar.MONTH, 1);

instance.add(Calendar.DATE,1);

Date time2=instance.getTime();

System.out.println(new SimpleDateFormat("yyyy-MM-dd").format(time2));

}

实际应用中,加一个月,减一个月,就可以这样弄了(instance.getTime 以及 setTime方法的应用就在于此):

public static voidmain(String[] args) {try{

Calendar instance= Calendar.getInstance(); //取得实例

SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM");

Date parse= sdf2.parse("2015-12"); //获得date类型数据之后

instance.setTime(parse); //instance.setTime的方法用途

instance.add(Calendar.MONTH, 1); //加一个月

System.out.println(sdf2.format(instance.getTime())); //然后再通过instance.getTime再获得date类型数据类型

} catch(Exception e) {

e.printStackTrace();

}

}

关于SimpleDateFormat的一些事一些情,注意默认的东东(说白了就是取最小):

public static void main(String[] args) throwsException {

SimpleDateFormat sdf1=new SimpleDateFormat("yyyy");

SimpleDateFormat sdf2=new SimpleDateFormat("yyyy-MM");

SimpleDateFormat sdf3=new SimpleDateFormat("yyyy-MM-dd");

SimpleDateFormat sdf6=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

System.out.println(sdf6.parse("2015-12-01 00:00:00").getTime() == sdf3.parse("2015-12-01").getTime()); //true

System.out.println(sdf6.parse("2015-12-01 00:00:00").getTime() == sdf2.parse("2015-12").getTime()); //true

System.out.println(sdf6.parse("2015-01-01 00:00:00").getTime() == sdf1.parse("2015").getTime()); //true

}

计算相差的天数(同理,小时数等也是这样计算,但是好像月数年数不能这样,因为一个月以及一年所拥有的天数是不一样的):

public static void main(String[] args) throwsException {

SimpleDateFormat sdf3= new SimpleDateFormat("yyyy-MM-dd");long time1 = sdf3.parse("2015-09-09").getTime();long time2 = sdf3.parse("2016-09-09").getTime();long dayDiff = (time2 - time1) / (24 * 3600 * 1000);

System.out.println(dayDiff);//打印出366

}

获得2017年2月的最后一天:

public static void main(String[] args) throwsException {

SimpleDateFormat sdf3= new SimpleDateFormat("yyyy-MM-dd");

Calendar instance=Calendar.getInstance();

System.out.println(sdf3.format(instance.getTime()));//如果instance什么都没有set,则是默认当前时间

instance.set(Calendar.YEAR, 2017);

instance.set(Calendar.MONTH,2); // 记住这里是2,而不是3,因为月是从0开始的,0到11

instance.set(Calendar.DATE,1);

System.out.println(sdf3.format(instance.getTime()));//2017年3月的第一天,如果哪一个没有设置,则默认当前 2017-03-01

instance.add(Calendar.DATE, -1); //然后减一天

System.out.println(sdf3.format(instance.getTime())); // 2017-02-28

}

afaf

afaf

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。