实验中有很多需要处理时间的地方
如比较时间先后,比较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);