-
Calendar:获取年、月、日、时、分、秒
public class CalenderDemo {public static void main(String[] args) {
Calendar calendar = Calendar.getInstance(); // 获取calendr(日历)对象
int year = calendar.get(Calendar.YEAR); // 年
int month = calendar.get(Calendar.MONTH)+1; // 月
int day = calendar.get(Calendar.DAY_OF_MONTH); // 日
int house = calendar.get(Calendar.HOUR_OF_DAY); // 时
int minutes = calendar.get(Calendar.MINUTE); // 分
int seconds = calendar.get(Calendar.SECOND); // 秒
int milliSeconds = calendar.get(Calendar.MILLISECOND); // 毫秒String date = year+"年"+month+"月"+day+"日 "+house+ ":"+minutes+":"+seconds+":"+milliSeconds; System.out.println(date);
}
}
2.date,获取当前系统时间
date.getTime(),获取系统时间毫秒值
package *****;
import java.util.Date;
public class DateDemo {
public static void main(String[] args) {
Date date = new Date();
System.out.println("当前的系统时间:"+date); // 当前系统时间
System.out.println("当前系统时间毫秒值:"+date.getTime()); // 当前系统时间毫秒值
Date oldDate = new Date(1605601632648l);
System.out.println("上一次的时间:"+date.getTime());
System.out.println("当前的系统时间:"+date);
System.out.println(date.after(oldDate)); // 前者时间大于后者为true;等于或小于为false
System.out.println(date.before(oldDate)); // 前者时间小于后者为true;等于或大于为false
System.out.println("日期比较:"+date.compareTo(oldDate)); // compareTo,前面的大于后面的为1,等于为0,小于为-1
}
}
3.getTimeInstance,获取当前年月
package *****;
import java.text.DateFormat;
import java.util.Date;
public class DateFormatDemo {
public static void main(String[] args) {
DateFormat df = DateFormat.getDateInstance(DateFormat.SHORT); // getDateInstance,当前年月日
String date = df.format(new Date());
System.out.println("当前时间:"+date);
df = DateFormat.getTimeInstance(DateFormat.SHORT); // getTimeInstance,当前具体时间
String time = df.format(new Date());
System.out.println("当前时间:"+time);
df = DateFormat.getDateTimeInstance(DateFormat.FULL,DateFormat.MEDIUM); // getDateTimeInstance,合并写
String dateTime = df.format(new Date());
System.out.println("当前时间:"+dateTime);
}
}
-
SimpleDateFormat:用于自定义日期格式
public class SimpleDateFormatDemo {
public static void main(String[] args) {
String pattern = “yyyy/mm/dd hh:mm:ss”; // yyyy-mm-dd hh:mm:ss
SimpleDateFormat sdf = new SimpleDateFormat(pattern);
String dateTime = sdf.format(new Date());
System.out.println(“格式化后的系统时间:”+dateTime);
} -
实例,计算年龄
package *****;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
/**
-
工具类 静态工具类
*/
public class DateUtil {
private static final String DATE_STYE01 = “yyyy-mm-dd hh:mm:ss”;
private static final String DATE_STYE02 = “yyyy年mm月dd日 hh:mm:ss”;private static SimpleDateFormat dateFomat = null;
/**
- 获取指定格式化dateFormat对象
*/
public static void format(String partten) {
switch(partten) {
case DATE_STYE01:
dateFomat = new SimpleDateFormat(partten);
break;
case DATE_STYE02:
dateFomat = new SimpleDateFormat(partten);
break;
}
}
/**
- 将日期对象转换为日期字符串
*/
public static String dateTostr(Date date,String partten) {
format(partten);
return dateFomat.format(date);
}
/**
- 将日期字符串转换为日期对象
*/
public static Date strToDate(String dateStr,String partten) throws ParseException {
format(partten);
return dateFomat.parse(dateStr);
}
/**
- 将日期字符串转换为long型
*/
public static long strToLong(String dateStr,String partten) throws ParseException {
Date date = strToDate(dateStr,partten);
return date.getTime();
}
public static int getAge(String birthday,String partten) throws ParseException {
// 给定的出生年月日
// 获取当前的系统时间
// 获取日期对应的毫秒值做减法运算
long oldAgeL = strToLong(birthday, partten);
Long newAgeL = new Date().getTime();
long ageL = oldAgeL - newAgeL;
double age = (double)ageL/1000/60/60/24/30/12;
return (int)Math.floor(age);
}
} - 获取指定格式化dateFormat对象