Java里的时间类以及函数

1.Java计算某一月份的最大天数

1 Calendar time=Calendar.getInstance();//使用默认时区和语言环境获得一个日历
2 time.clear();
3 time.set(Calendar.YEAR,year);
4 time.set(Calendar.MONTH,i-1);//注意Calendar对象默认一月是为零的
5 int day=time.getActualMaximum(Calendar.DAY_OF_YEAR);//获得本月份的天数

注意:在使用set方法之前,必须先调用clear(),否则很多信息会继承自系统当前的时间

2.Java中Calendar和Date的转化

  (1)Calendar转化为Date

 

1 Calendar cal=Calendar.getInstance();
2 Date date=cal.getTime();

 

  (2)Date转换为Calendar

1 Date date=new Date();
2 Calendar cal=Calendar.getInstance();
3 cal.setTime();

3.Java格式化输出日期时间

1 Date date=new Date();
2 SimpleDateFormat df=new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");//设置日期时间格式
3 System.out.println(df.format(date));

4.Java计算一年中的第几星期

  (1)计算某一天是一年中的第几星期

1 Calendar cal=Calendar.getInstance();
2 cal.set(Calendar.YEAR,2012);
3 cal.set(Calendar.MONTH);
4 cal.set(Calendar.DAY_OF_MONTH,3);
5 int weekno=cal.get(Calendar.WEEK_OF_YEAR);

  (2)计算一年中的星期几是几号

1 SimpleDateFormat df=new SimpleDateFormat("yyyy-MM-dd");
2 Calendar cal=Calendar.getInstance();
3 cal.set(Calendar.YEAR,2012);
4 cal.set(Calendar.WEEK_OF_YEAR,1);
5 cal.set(Calendar.DAY_OF_WEEK,Calendar.MONDAY);
6 System.out.println(df.format(cal.getTime()));

输出结果为:

2012-01-02

5.add()和roll()的用法

  (1)add()方法

复制代码
 1 SimpleDateFormat df=new SimpleDateFormat("yyyy-MM-dd");
 2 Calendar cal=Calendar.getInstance();
 3 cal.set(Calendar.YEAR,2012);//设置年份
 4 cal.set(Calendar.MONTH,5);//设置月份
 5 cal.set(Calendar.DAY_OF_MONTH,5);
 6 cal.add(Calendar.DATE,-4);
 7 Date date=cal.getTime();
 8 System.out.println(df.format(date));
 9 cal.add(Calendar.DATE,4);
10 date=cal.getTime();
11 System.out.println(df.format(date));
复制代码

输出结果为:

2012-06-05

2012-06-01

  (2)roll()方法

复制代码
 1 SimpleDateFormat df=new SimpleDateFormat("yyyy-MM-dd");
 2 Calendar cal=Calendar.getInstance();
 3 cal.set(Calendar.YEAR, 2012);
 4 cal.set(Calendar.MONTH,8);
 5 cal.set(Calendar.DAY_OF_MONTH, 3);
 6 cal.roll(Calendar.DATE,-4);
 7 Date date=cal.getTime();
 8 System.out.println(df.format(date));
 9 cal.roll(Calendar.DATE,4);
10 date=cal.getTime();
11 System.out.println(df.format(date));
复制代码

输出结果为:

2012-09-29

2012-09-03

可见,roll()方法在本月内循环,一般使用add()方法;

posted @   json_chan  阅读(9017)  评论(0编辑  收藏  举报
编辑推荐:
· 软件产品开发中常见的10个问题及处理方法
· .NET 原生驾驭 AI 新基建实战系列:向量数据库的应用与畅想
· 从问题排查到源码分析:ActiveMQ消费端频繁日志刷屏的秘密
· 一次Java后端服务间歇性响应慢的问题排查记录
· dotnet 源代码生成器分析器入门
阅读排行:
· ThreeJs-16智慧城市项目(重磅以及未来发展ai)
· .NET 原生驾驭 AI 新基建实战系列(一):向量数据库的应用与畅想
· Ai满嘴顺口溜,想考研?浪费我几个小时
· Browser-use 详细介绍&使用文档
· 软件产品开发中常见的10个问题及处理方法
点击右上角即可分享
微信分享提示