Calendar类
这是一个对时间操作的类
该类是一个abstract类,提供了getInstance方法来实例化Calendar类 :Calendar rightNow = Calendar.getInstance();
public static void main(String[] args) {
Calendar cal = Calendar.getInstance();
int year = cal.get(Calendar.YEAR);
int month = cal.get(Calendar.MONTH)+1;
int day = cal.get(Calendar.DAY_OF_MONTH);
int week = cal.get(Calendar.WEEK_OF_MONTH);
String weeks ="";
switch (week) {
case 1:weeks="星期天";
break;
case 2:weeks="星期一";
break;
case 3:weeks="星期二";
break;
case 4:weeks="星期三";
break;
case 5:weeks="星期四";
break;
case 6:weeks="星期五";
break;
default:weeks="星期六";
break;
}
int hour = cal.get(Calendar.HOUR_OF_DAY);//24小时制
// int h1 = cal.get(Calendar.HOUR);//12小时制
int minute = cal.get(Calendar.MINUTE);
int second = cal.get(Calendar.SECOND);
String h,m,s;
if(hour<10) h = "0"+hour; else h = hour+"";
if(minute<10) m = "0"+minute; else m = minute+"";
if(second<10) s = "0"+second; else s = second+"";
}输出:今天是: 2018年12月14日星期五 05:35:26
add
public abstract void add(int field, int amount)
根据日历的规则,为给定的日历字段添加或减去指定的时间量。例如,要从当前日历时间减去 5 天,可以通过调用以下方法做到这一点:
add(Calendar.DAY_OF_MONTH, -5)
。
public final void set(int year, int month, int date, int hourOfDay, int minute)
设置日历字段 YEAR
、 MONTH
、 DAY_OF_MONTH
、 HOUR_OF_DAY
和 MINUTE
的值。保留其他字段以前的值。如果不需要这样做,则先调用 clear()
。
参数:
year
- 用来设置 YEAR
日历字段的值。
month
- 用来设置 MONTH
日历字段的值。Month 值是基于 0 的。例如,0 表示 January。
date
- 用来设置 DAY_OF_MONTH
日历字段的值。
hourOfDay
- 用来设置 HOUR_OF_DAY
日历字段的值。
minute
- 用来设置 MINUTE
日历字段的值。
参数:
field
- 日历字段。
amount
- 为字段添加的日期或时间量。
date类
两个构造方法:
Date(): 分配 Date
对象并初始化此对象,以表示分配它的时间(精确到毫秒)
相当于System.currentTimeMillis()
Date(long date):分配 Date
对象并初始化此对象,以表示自从标准基准时间(称为“历元(epoch)”,即 1970 年 1 月 1 日 00:00:00 GMT)以来的指定毫秒数。
其他方法:
System.currentTimeMillis():获取当前的时间戳,该时间是从1970年到现在的毫秒戳
getTime():返回自1970年1月1号以来Date对象表示 的毫秒值
setTime(): 设置此 Date
对象,以表示 1970 年 1 月 1 日 00:00:00 GMT 以后 time
毫秒的时间点。
compareTo(Date t){
当前对象和t比较
当前对象大,返回正数
当前对象小,返回负数
相等,返回0
}
public static void main(String[] args) {
Date date1 = new Date();
Date date2 = new Date(100000000000L);
SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd");
//设置毫秒值
date1.setTime(15447907409690L);
//getTime方法返回一个long类型的毫秒值
long time = date1.getTime();
System.out.println(time);//sf对象的方法
String d = sf.format(date1);
String s = sf.format(date2);
System.out.println(date1);
System.out.println(date2);
System.out.println(d);
System.out.println(s);
}
SimpleDateFormat类
是一个以与语言环境有关的方式来格式化和解析日期的具体类
简单来说就是日期格式工具类
创建对象
new SimpleDateFormat("yyyy-MM-dd")||| 构造方法中有很多格式,详情可以查看API
方法:
format(Date date, StringBuffer toAppendTo, FieldPosition pos)
将给定的 Date
格式化为日期/时间字符串,并将结果添加到给定的 StringBuffer
。
date
- 要被格式化为日期-时间字符串的日期-时间值。
toAppendTo
- 新的日期-时间文本被添加的位置。
pos
- 格式化的位置。输入时:如果需要,是一个对齐字段。输出时:为对齐字段的偏移量。
parse(Stirng s)
将一个按照SimpleDateFormat的格式的String数据转换成date类型
topattern()
返回描述此日期格式的模式字符串。如返回yyyy-MM-dd;
private static long f(String date) throws ParseException { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd:HH:mm:ss"); Date ss = sdf.parse(date); String format = sdf1.format(new Date()); System.out.println(format); System.out.println(ss); long t = ss.getTime()-System.currentTimeMillis(); t= t/1000/60/60/24; return t; }