Java Date
在java.util包里
表示特定的瞬间,精确到毫秒
Java Date 类提供的方法
boolean |
after(Date when)
测试此日期是否在指定日期之后。 |
---|---|
boolean |
before(Date when)
测试此日期是否在指定日期之前。 |
Object |
clone()
返回此对象的副本。 |
int |
compareTo(Date anotherDate)
比较两个日期的顺序。 |
boolean |
equals(Object obj)
比较两个日期的相等性。 |
int |
getDate()
已过时。 从 JDK 1.1 开始,由 Calendar.get(Calendar.DAY_OF_MONTH) 取代。 |
int |
getDay()
已过时。 从 JDK 1.1 开始,由 Calendar.get(Calendar.DAY_OF_WEEK) 取代。 |
int |
getHours()
已过时。 从 JDK 1.1 开始,由 Calendar.get(Calendar.HOUR_OF_DAY) 取代。 |
int |
getMinutes()
已过时。 从 JDK 1.1 开始,由 Calendar.get(Calendar.MINUTE) 取代。 |
int |
getMonth()
已过时。 从 JDK 1.1 开始,由 Calendar.get(Calendar.MONTH) 取代。 |
int |
getSeconds()
已过时。 从 JDK 1.1 开始,由 Calendar.get(Calendar.SECOND) 取代。 |
long |
getTime()
返回自 1970 年 1 月 1 日 00:00:00 GMT 以来此 Date 对象表示的毫秒数。 |
int |
getTimezoneOffset()
已过时。 从 JDK 1.1 开始,由 -(Calendar.get(Calendar.ZONE_OFFSET) + Calendar.get(Calendar.DST_OFFSET)) / (60 * 1000) 取代。 |
int |
getYear()
已过时。 从 JDK 1.1 开始,由 Calendar.get(Calendar.YEAR) - 1900 取代。 |
int |
hashCode()
返回此对象的哈希码值。 |
static long |
parse(String s)
已过时。 从 JDK 1.1 开始,由 DateFormat.parse(String s) 取代。 |
void |
setDate(int date)
已过时。 从 JDK 1.1 开始,由 Calendar.set(Calendar.DAY_OF_MONTH, int date) 取代。 |
void |
setHours(int hours)
已过时。 从 JDK 1.1 开始,由 Calendar.set(Calendar.HOUR_OF_DAY, int hours) 取代。 |
void |
setMinutes(int minutes)
已过时。 从 JDK 1.1 开始,由 Calendar.set(Calendar.MINUTE, int minutes) 取代。 |
void |
setMonth(int month)
已过时。 从 JDK 1.1 开始,由 Calendar.set(Calendar.MONTH, int month) 取代。 |
void |
setSeconds(int seconds)
已过时。 从 JDK 1.1 开始,由 Calendar.set(Calendar.SECOND, int seconds) 取代。 |
void |
setTime(long time)
设置此 Date 对象,以表示 1970 年 1 月 1 日 00:00:00 GMT 以后 time 毫秒的时间点。 |
void |
setYear(int year)
已过时。 从 JDK 1.1 开始,由 Calendar.set(Calendar.YEAR, year + 1900) 取代。 |
String |
toGMTString()
已过时。 从 JDK 1.1 开始,由 DateFormat.format(Date date) 取代,使用 GMT TimeZone。 |
String |
toLocaleString()
已过时。 从 JDK 1.1 开始,由 DateFormat.format(Date date) 取代。 |
String |
toString()
把此 Date 对象转换为以下形式的 String: dow mon dd hh:mm:ss zzz yyyy 其中: dow 是一周中的某一天 (Sun, Mon, Tue, Wed, Thu, Fri, Sat)。 |
static long |
UTC(int year, int month, int date, int hrs, int min, int sec)
已过时。 从 JDK 1.1 开始,由 Calendar.set(year + 1900, month, date, hrs, min, sec) 或 GregorianCalendar(year + 1900, month, date, hrs, min, sec) 取代,使用 UTC TimeZone,后跟 Calendar.getTime().getTime()。 |
Java Date 初始化示例
public class Test
{
public static void main(String[] args) {
Date now = new Date();
System.out.println("当前时间 + " + now);
System.out.println("当前时间的时间戳 + " + now.getTime());
}
}
运算结果为
当前时间 + Sun Jul 26 11:57:45 CST 2020
当前时间的时间戳 + 1595735865183
Java 日期格式化 DateFormat SimpleDateFormat
public class Test
{
public static void main(String[] args) {
Date now = new Date();
System.out.println("当前时间 + " + now);
System.out.println("当前时间的时间戳 + " + now.getTime());
//DateUtils.convertDate(parttern, dateString)
//调用格式方法
System.out.println("不指定格式 : " + new SimpleDateFormat().format(now));
System.out.println("指定格式 (yyyyMMddHHmmss): " + new SimpleDateFormat("yyyyMMddHHmmss").format(now));
System.out.println("指定格式 (yyyy-MM-dd HH:mm:ss): " + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(now));
System.out.println("指定格式 (yyyyMMdd): " + new SimpleDateFormat("yyyyMMdd").format(now));
System.out.println("指定格式 (yyyy-MM-dd): " + new SimpleDateFormat("yyyy-MM-dd").format(now));
System.out.println("指定格式 (HH:mm:ss): " + new SimpleDateFormat("HH:mm:ss").format(now));
}
}
运算结果为
当前时间 + Sun Jul 26 12:12:04 CST 2020
当前时间的时间戳 + 1595736724806
不指定格式 : 20-7-26 下午12:12
指定格式 (yyyyMMddHHmmss): 20200726121204
指定格式 (yyyy-MM-dd HH:mm:ss): 2020-07-26 12:12:04
指定格式 (yyyyMMdd): 20200726
指定格式 (yyyy-MM-dd): 2020-07-26
指定格式 (HH:mm:ss): 12:12:04
DateFormat SimpleDateFormat 这个是非线程安全,多线程并发会有问题! 因此我们往往直接加入synchronized,但是这样缺点自然就是并发量大的时候会对性能有影响, 线程阻塞。
jdk1.8之后,建议使用LocalDateTime,
具体使用 DateTimeFormatter