首页 > 最新Java中Date类型详解

最新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.计算某一月份的最大天数Calendar time = Calendar.getInstance();time.clear();time.set(Calendar.YEAR, year); // year 为 inttime.set(Calendar.MONTH, i - 1);// 注意,Calendar对象默认一月为0int day = time.getActualMaximum(Calendar.DAY_OF_MONTH);// 本月份的天数// 注:在使用set方法之前,必须先clear一下,否则很多信息会继承自系统当前时间// 2.Calendar和Date的转化 // (1) Calendar转化为Date Calendarcal = Calendar.getInstance();Date date = cal.getTime();// (2) Date转化为CalendarDate 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()方法;

 

转载于:https://www.cnblogs.com/0717GG/p/7087663.html

更多相关:

  • function getYearMonthList(startDate, endDate) {//返回月份的数组 如 ['2021/07','2021/08']var arr = [];var s = new Date(startDate).toLocaleString("zh-Hans-CN", {year: "numeric",...

  • 0.cal 2019  #输出日历并显示今天是哪一天 1.命令“date”,显示系统的当前日期和时间; 2.命令“date 040100002016”,屏幕显示新修改的系统时间;  #不太明白 3. 转载于:https://www.cnblogs.com/Formulate0303/p/11142997.html...

  • 题目1 --日期 借助随机数,创建一个从1995.1.1 00:00:00 到 1995.12.31 23:59:59 之间的随机日期 package date;import java.util.Date;public class TestDate {public static void main(String[] args) {lo...

  • 一.获取当前时间 1.1创建一个日期对象 NSDate *date = [NSDate date];NSLog(@"%@",date);   输出结果: 2016-07-01 17:31:02.410 OCString[907:402963] 2016-07-01 09:31:02 +0000 //因为时...