Calendar,Date类的使用

  • Post author:
  • Post category:其他


实验中有很多需要处理时间的地方

如比较时间先后,比较1d后时间先后,由于闰年,月份等因素不好直接处理

可以使用java的Calendar,Date类来处理比较方便,使用SimpleDateFormat可以将字符串储存为时间类



String  Calendar之间的转换






//1.Date 转化String

SimpleDateFormat sdf= new SimpleDateFormat(“yyyy-MM-dd”);

String dateStr=sdf.format(new Date());

//2.String 转化Date

String str=”2010-5-27″;

SimpleDateFormat sdf= new SimpleDateFormat(“yyyy-MM-dd”);

Date birthday = sdf.parse(str);



Calendar




和String对象之间的转换

//1.Calendar 转化 String

Calendar calendat = Calendar.getInstance();

SimpleDateFormat sdf = new SimpleDateFormat(“yyyy-MM-dd”)0;

String dateStr = sdf.format(calendar.getTime());

//2.String 转化Calendar

String str=”2010-5-27″;

SimpleDateFormat sdf= new SimpleDateFormat(“yyyy-MM-dd”);

Date date =sdf.parse(str);

Calendar calendar = Calendar.getInstance();

calendar.setTime(date);

下面是使用方法

一、 Date类

Date类对象的创建:

1、创建储存当前时间的Date对象

Date d = new Date();

2、创建储存指定的时间的Date对象

使用带参数的构造方法Date(int year, int month, int day)

Date类中年份是实际需要代表的年份减去1900,

实际的月份减去1以后的值。

//创建一个代表2020年6月10号的Date对象

Date d1 = new Date(2020-1900, 6-1, 20);

3、获取date对象所包含的信息

int year = d2.getYear() + 1900;

int month = d2.getMonth() + 1;

int date = d2.getDate();

int hour = d2.getHours();

int minute = d2.getMinutes();

int second = d2.getSeconds();

int day = d2.getDay();//星期

二、Calendar类

使用calendar更便于日期计算

1、Calendar类对象的创建

Calendar类是抽象类,且构造方法是protected的,所以无法使用Calendar类的构造方法来创建

2、创建一个代表系统当前日期的Calendar对象

Calendar c = Calendar.getInstance();//默认是当前日期

3、创建一个指定日期的Calendar对象

如果想储存指定日期需要先创建一个默认Calendar在用set设定日期

//创建一个代表2020年6月10日的Calendar对象

Calendar c1 = Calendar.getInstance();

c1.set(2020, 6 – 1, 10);//public final void set(int year,int month,int date)

或者可以分别设定

//例如把 c1对象代表的日期设置为10号,

c1.set(Calendar.DATE,10);

其他字段属性set的意义以此类推

Calendar.YEAR——年份

Calendar.MONTH——月份

Calendar.DATE——日期

Calendar.DAY_OF_MONTH——日期,和上面的字段意义相同

Calendar.HOUR——12小时制的小时

Calendar.HOUR_OF_DAY——24小时制的小时

Calendar.MINUTE——分钟

Calendar.SECOND——秒

Calendar.DAY_OF_WEEK——星期几

C、Add设置(可用与计算时间)

Calendar c1 = Calendar.getInstance();

//把c1对象的日期加上1,即1天后

c1.add(Calendar.DATE, 1);

//把c1对象的日期加上-1,即1天前

c1.add(Calendar.DATE, -1);

其他字段属性的add的意义以此类推

2)、Calendar类对象信息的获得(使用get())

Calendar c1 = Calendar.getInstance();

// 获得年份

int year = c1.get(Calendar.YEAR);

// 获得月份

int month = c1.get(Calendar.MONTH) + 1;(MONTH+1)

// 获得日期

int date = c1.get(Calendar.DATE);

// 获得小时

int hour = c1.get(Calendar.HOUR_OF_DAY);

// 获得分钟

int minute = c1.get(Calendar.MINUTE);

// 获得秒

int second = c1.get(Calendar.SECOND);

// 获得星期

int day = c1.get(Calendar.DAY_OF_WEEK);

Date类对象与long型时间的互转

//1.将Date类的对象转换为long型时间

Date d= new Date();

//使用对象的getTime()方法完成

long dLong = d.getTime();

//2.将long型时间转换为Date类的对象

long time = 123456789123456789

//使用Date的构造方法完成

Date d2 = new Date(time);

Calendar对象和long型时间之间的互转

// 将Calendar对象转换为相对时间

Calendar c = Calendar.getInstance();

long t1 = c.getTimeInMillis();

// 将long转换为Calendar对象

Calendar c1 = Calendar.getInstance();

long t = 123456789123456789

c1.setTimeInMillis(t1);

Calendar对象和Date对象之间的互转

//1 .将Calendar对象转换为Date(c.getTime())

Calendar c = Calendar.getInstance();

Date d = c.getTime();

// 2.将Date转换为Calendar对象(s.setTime(date))

Calendar c1 = Calendar.getInstance();

Date d1 = new Date();

//通过setTime()方法后,日历c1所表示的日期就d1的日期

c1.setTime(d1);



String  Calendar之间的转换






//1.Date 转化String

SimpleDateFormat sdf= new SimpleDateFormat(“yyyy-MM-dd”);

String dateStr=sdf.format(new Date());

//2.String 转化Date

String str=”2010-5-27″;

SimpleDateFormat sdf= new SimpleDateFormat(“yyyy-MM-dd”);

Date birthday = sdf.parse(str);



Calendar




和String对象之间的转换

//1.Calendar 转化 String

Calendar calendat = Calendar.getInstance();

SimpleDateFormat sdf = new SimpleDateFormat(“yyyy-MM-dd”)0;

String dateStr = sdf.format(calendar.getTime());

//2.String 转化Calendar

String str=”2010-5-27″;

SimpleDateFormat sdf= new SimpleDateFormat(“yyyy-MM-dd”);

Date date =sdf.parse(str);

Calendar calendar = Calendar.getInstance();

calendar.setTime(date);



版权声明:本文为qq_20069409原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。