zoukankan      html  css  js  c++  java
  • Java中Date类型详解

    一、Date类型的初始化

    1、 Date(int year, int month, int date); 直接写入年份是得不到正确的结果的。 因为java中Date是从1900年开始算的,所以前面的第一个参数只要填入从1900年后过了多少年就是你想要得到的年份。 月需要减1,日可以直接插入。 这种方法用的比较少,常用的是第二种方法。

    2、 这种方法是将一个符合特定格式,比如yyyy-MM-dd,的字符串转化成为Date类型的数据。 首先,定义一个Date类型的对象 Date date = null; 再定义一个String类型的符合格式的字符串 String dateStr = "2010-9-10"; 把这个字符串进行拆分 String[ ]  dateDivide = dateStr.split("-"); 把年月日分别取出,赋给Calendar,用 Calendar的getTime();取得日期再赋给date。

    例如:

    if(dateDivide.length==3){ 
       int year = Integer.parseInt(dateDivide [0].trim());//去掉空格 
         int month = Integer.parseInt(dateDivide [1].trim()); 
         int day = Integer.parseInt(dateDivide [2].trim()); 
         Calendar c = Calendar.getInstance();//获取一个日历实例 
         c.set(year, month-1, day);//设定日历的日期 
         date = c.getTime(); 
    }

    二、Date类型的比较

    Date a;
    Date b;
    假设现在你已经实例化了a和b
    a.after(b)返回一个boolean,如果a的时间在b之后(不包括等于)返回true
    b.before(a)返回一个boolean,如果b的时间在a之前(不包括等于)返回true
    a.equals(b)返回一个boolean,如果a的时间和b相等返回true

    三、Date类型常用的操作函数

     1 // 1.计算某一月份的最大天数
     2 Calendar time = Calendar.getInstance();
     3 time.clear();
     4 time.set(Calendar.YEAR, year); // year 为 int
     5 time.set(Calendar.MONTH, i - 1);// 注意,Calendar对象默认一月为0
     6 int day = time.getActualMaximum(Calendar.DAY_OF_MONTH);// 本月份的天数
     7 // 注:在使用set方法之前,必须先clear一下,否则很多信息会继承自系统当前时间
     8 // 2.Calendar和Date的转化
     9 // (1) Calendar转化为Date Calendar
    10 cal = Calendar.getInstance();
    11 Date date = cal.getTime();
    12 // (2) Date转化为Calendar
    13 Date date = new Date();
    14 Calendar cal = Calendar.getInstance();
    15 cal.setTime(date);
    16 // 3.格式化输出日期时间(这个用的比较多)
    17 Date date = new Date();
    18 SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
    19 String time = df.format(date);
    20 System.out.println(time);
    21 // 4.计算一年中的第几星期
    22 // (1)计算某一天是一年中的第几星期
    23 Calendar cal = Calendar.getInstance();
    24 cal.set(Calendar.YEAR, 2006);
    25 cal.set(Calendar.MONTH, 8);
    26 cal.set(Calendar.DAY_OF_MONTH, 3);
    27 int weekno = cal.get(Calendar.WEEK_OF_YEAR);
    28 // (2)计算一年中的第几星期是几号
    29 SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
    30 Calendar cal = Calendar.getInstance();
    31 cal.set(Calendar.YEAR, 2006);
    32 cal.set(Calendar.WEEK_OF_YEAR, 1);
    33 cal.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
    34 System.out.println(df.format(cal.getTime()));//输出:2006-01-02
    35 // 5.add()和roll()的用法(不太常用)
    36 // (1)add()方法
    37 SimpleDateFormat df=newSimpleDateFormat("yyyy-MM-dd");
    38 Calendar cal = Calendar.getInstance();
    39 cal.set(Calendar.YEAR, 2006);
    40 cal.set(Calendar.MONTH, 8);
    41 cal.set(Calendar.DAY_OF_MONTH, 3);
    42 cal.add(Calendar.DATE, -4);
    43 Date date = cal.getTime();
    44 System.out.println(df.format(date));
    45 cal.add(Calendar.DATE, 4);
    46 date = cal.getTime();
    47 System.out.println(df.format(date));//输出:2006-08-30 2006-09-03
    48 //(2)roll方法
    49 cal.set(Calendar.YEAR, 2006);
    50 cal.set(Calendar.MONTH,8);
    51 cal.set(Calendar.DAY_OF_MONTH,3);
    52 cal.roll(Calendar.DATE, -4);
    53 date=cal.getTime();
    54 System.out.println(df.format(date));
    55 cal.roll(Calendar.DATE,4);
    56 date=cal.getTime();
    57 System.out.println(df.format(date));//输出:2006-09-292006-09-03
    58 // 可见,roll()方法在本月内循环,一般使用add()方法;

     

    一、Date类型的初始化

    1、 Date(int year, int month, int date); 直接写入年份是得不到正确的结果的。 因为java中Date是从1900年开始算的,所以前面的第一个参数只要填入从1900年后过了多少年就是你想要得到的年份。 月需要减1,日可以直接插入。 这种方法用的比较少,常用的是第二种方法。

    2、 这种方法是将一个符合特定格式,比如yyyy-MM-dd,的字符串转化成为Date类型的数据。 首先,定义一个Date类型的对象 Date date = null; 再定义一个String类型的符合格式的字符串 String dateStr = "2010-9-10"; 把这个字符串进行拆分 String[ ]  dateDivide = dateStr.split("-"); 把年月日分别取出,赋给Calendar,用 Calendar的getTime();取得日期再赋给date。

    例如:

    1
    2
    3
    4
    5
    6
    7
    8
    if(dateDivide.length==3){ 
       int year = Integer.parseInt(dateDivide [0].trim());//去掉空格 
         int month = Integer.parseInt(dateDivide [1].trim()); 
         int day = Integer.parseInt(dateDivide [2].trim()); 
         Calendar c = Calendar.getInstance();//获取一个日历实例 
         c.set(year, month-1, day);//设定日历的日期 
         date = c.getTime(); 
    }

    二、Date类型的比较

    Date a;
    Date b;
    假设现在你已经实例化了a和b
    a.after(b)返回一个boolean,如果a的时间在b之后(不包括等于)返回true
    b.before(a)返回一个boolean,如果b的时间在a之前(不包括等于)返回true
    a.equals(b)返回一个boolean,如果a的时间和b相等返回true

    三、Date类型常用的操作函数

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    // 1.计算某一月份的最大天数
    Calendar time = Calendar.getInstance();
    time.clear();
    time.set(Calendar.YEAR, year); // year 为 int
    time.set(Calendar.MONTH, i - 1);// 注意,Calendar对象默认一月为0
    int day = time.getActualMaximum(Calendar.DAY_OF_MONTH);// 本月份的天数
    // 注:在使用set方法之前,必须先clear一下,否则很多信息会继承自系统当前时间
    // 2.Calendar和Date的转化
    // (1) Calendar转化为Date Calendar
    cal = Calendar.getInstance();
    Date date = cal.getTime();
    // (2) Date转化为Calendar
    Date date = new Date();
    Calendar cal = Calendar.getInstance();
    cal.setTime(date);
    // 3.格式化输出日期时间(这个用的比较多)
    Date date = new Date();
    SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
    String time = df.format(date);
    System.out.println(time);
    // 4.计算一年中的第几星期
    // (1)计算某一天是一年中的第几星期
    Calendar cal = Calendar.getInstance();
    cal.set(Calendar.YEAR, 2006);
    cal.set(Calendar.MONTH, 8);
    cal.set(Calendar.DAY_OF_MONTH, 3);
    int weekno = cal.get(Calendar.WEEK_OF_YEAR);
    // (2)计算一年中的第几星期是几号
    SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
    Calendar cal = Calendar.getInstance();
    cal.set(Calendar.YEAR, 2006);
    cal.set(Calendar.WEEK_OF_YEAR, 1);
    cal.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
    System.out.println(df.format(cal.getTime()));//输出:2006-01-02
    // 5.add()和roll()的用法(不太常用)
    // (1)add()方法
    SimpleDateFormat df=newSimpleDateFormat("yyyy-MM-dd");
    Calendar cal = Calendar.getInstance();
    cal.set(Calendar.YEAR, 2006);
    cal.set(Calendar.MONTH, 8);
    cal.set(Calendar.DAY_OF_MONTH, 3);
    cal.add(Calendar.DATE, -4);
    Date date = cal.getTime();
    System.out.println(df.format(date));
    cal.add(Calendar.DATE, 4);
    date = cal.getTime();
    System.out.println(df.format(date));//输出:2006-08-30 2006-09-03
    //(2)roll方法
    cal.set(Calendar.YEAR, 2006);
    cal.set(Calendar.MONTH,8);
    cal.set(Calendar.DAY_OF_MONTH,3);
    cal.roll(Calendar.DATE, -4);
    date=cal.getTime();
    System.out.println(df.format(date));
    cal.roll(Calendar.DATE,4);
    date=cal.getTime();
    System.out.println(df.format(date));//输出:2006-09-292006-09-03
    // 可见,roll()方法在本月内循环,一般使用add()方法;
  • 相关阅读:
    旅行计划(拓扑排序)
    Extended traffic
    Tram(最短路)
    Cow and Friend(贪心)
    Invitation Cards(SPFA + 反向建边)
    Johnny and Another Rating Drop(找规律)
    python连接服务器上传文件,后台执行命令
    linux杀死某个进程
    linux安装杀毒软件
    django项目同一用户不能同时登陆
  • 原文地址:https://www.cnblogs.com/zl520/p/9957908.html
Copyright © 2011-2022 走看看