版权声明:老虎的博客 https://blog.csdn.net/qq493820798/article/details/82257088
一.Date常用方法
package JavaSE;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class DateFun {
public static void main(String[] args){
//默认当前系统时间
Date date = new Date();
//date.getTime() 获取从1970-1-1 00:00:00到这一刻的毫秒值
//当然也有setTime()方法
long time = date.getTime();
System.out.println(time);
/**
*SimpleDateFormat
*使得可以在Date与String之间相互转换
*/
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//format(date); 将时间转换为字符串
String str = sdf.format(date);
System.out.println(str);
//parse(); 将字符串转换为时间
String timeSrr = "2018-07-26 17:04:00";
try {
Date zhdate = sdf.parse(timeSrr);
System.out.println(zhdate);
} catch (ParseException e) {
e.printStackTrace();
}
}
}
二.操作时间类Calendar
package JavaSE;
import java.util.Calendar;
import java.util.Date;
/**
* 日历类
* 用于操作时间的类
* @author administrator
*
*/
public class DateCalendar {
public static void main(String[] args){
//默认创建的Calendar表示当前系统时间
Calendar calendar = Calendar.getInstance();
System.out.println(calendar);
/*
* Date getTime()
* 该方法用于获取一个Date对象,该对象表示的时间
* 就是当前Calendar所表示的时间
*/
Date date = calendar.getTime();
System.out.println(date);
/*
* Date转换成Calendar
* setTime();
*/
calendar.setTime(date);
/**
* 希望表示2018-08-30 10:22:33
*/
calendar.set(Calendar.YEAR, 2008);
//月份值可以使用常量,也可以给定值,需要注意:月份从0开始
calendar.set(Calendar.MARCH, 8-1);
//Calendar.DATE 与 Calendar.DAY_OF_MONTH (相同)
calendar.set(Calendar.DATE, 30);
calendar.set(Calendar.HOUR_OF_DAY, 10);
calendar.set(Calendar.MINUTE, 22);
calendar.set(Calendar.SECOND, 33);
date = calendar.getTime();
System.out.println(date);
}
}
三.获取Calendar中某个时间分量对应的值
package JavaSE;
import java.util.Calendar;
/**
* 获取Calendar中某个时间分量对应的值
* @author administrator
*
*/
public class DateCalendar01 {
public static void main(String[] args){
Calendar calendar = Calendar.getInstance();
/*
* int get(int field);
* 根据给定时间分量获取对应的值
*/
int year = calendar.get(Calendar.YEAR);
int month = calendar.get(Calendar.MONTH+1);
int date = calendar.get(Calendar.DATE);
//单独获取年,月,日
System.out.println(year+"-"+month+"-"+date);
int hourOfday = calendar.get(Calendar.HOUR_OF_DAY);
int minute = calendar.get(Calendar.MINUTE);
int second = calendar.get(Calendar.SECOND);
//单独获取时,分,秒
System.out.println(hourOfday+":"+minute+":"+second);
/*
* 注意calendar认为一周当中的第一天是星期日
* 获取当前是星期几
*/
int w = calendar.get(Calendar.DAY_OF_WEEK);
System.out.println("星期:"+(w==1?7:w-1));
}
}
四. 使用Calendar计算时间
package JavaSE;
import java.text.SimpleDateFormat;
import java.util.Calendar;
/**
* 使用Calendar计算时间
* @author administrator
*
*/
public class DateCalendar02 {
public static void main(String[] args) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
/*
* add(int field,int n)
* 为当前calendar指定时间分量上累加给定值
* 若传入的是负数,则是累减
*/
Calendar calendar = Calendar.getInstance();
calendar.add(Calendar.DAY_OF_YEAR, 15);
// System.out.println(calendar.getTime());
System.out.println(sdf.format(calendar.getTime()));
/*
* 三个月零十天后的那周的星期三是几号
*/
Calendar cal = Calendar.getInstance();
cal.add(Calendar.MONTH, 3);
cal.add(Calendar.DAY_OF_YEAR, 10);
cal.set(Calendar.DAY_OF_WEEK, 4); //1是周天,所有4是周三
// System.out.println(cal.getTime());
System.out.println(sdf.format(cal.getTime()));
/*
* 获取某个时间分量所允许的最大值
* 获取今年最大天数
*/
Calendar cal1 = Calendar.getInstance();
int days = cal1.getActualMaximum(Calendar.DAY_OF_YEAR);
System.out.println(days);
}
}