zoukankan      html  css  js  c++  java
  • 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()方法;

  • 相关阅读:
    [Swift]LeetCode300. 最长上升子序列 | Longest Increasing Subsequence
    备忘录模式之C++实现
    leecode 题解 || Merge k Sorted Lists 问题
    数学三大危机
    singlefile.py
    Data Url生成工具之HTML5 FileReader实现
    算法题:打印1到最大的n位数
    java.lang.NoClassDefFoundError: org/apache/commons/lang/xwork/StringUtils
    hdu 1181 变形课
    postgis经常使用函数介绍(一)
  • 原文地址:https://www.cnblogs.com/ayan/p/2451129.html
Copyright © 2011-2022 走看看