日期类
Posted yxc-160206
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了日期类相关的知识,希望对你有一定的参考价值。
日期类
获取系统当前时间
- 获取系统当前时间:
Date d = new Date();
public class DateTest01 {
public static void main(String[] args) {
// 获取系统当前时间(精确到毫秒的系统当前时间)
// 直接调用无参数构造方法
Date nowTime = new Date();
// java.util.Date类的toString()方法已经被重写了。
// 输出的应该不是一个对象的内存地址,应该是一个日期字符串
System.out.println(nowTime);//Sun Jul 05 08:00:14 CST 2020
System.out.println(nowTime.toString());//Sun Jul 05 08:00:14 CST 2020
}
}
日期格式化
- 日期格式化:
Date --> String
(yyyy-MM-dd HH:mm:ss SSS
)
SimpleDateFormat sdf = new SimpleDate("yyyy-MM-dd HH:mm:ss SSS");
String s = sdf.format(new Date());
格式 | 含义 |
---|---|
yyyy |
年(年是4位) |
MM |
月(月是2位) |
dd |
日 |
HH |
时 |
mm |
分 |
ss |
秒 |
SSS |
毫秒(毫秒3位,最高999。1000毫秒代表1秒) |
- 注意:在日期格式中,除了年月日时分秒毫秒对应的格式不能随便写之外,剩下的符号格式可以随意组织。
public class DateTest01 {
public static void main(String[] args) {
// 获取系统当前时间(精确到毫秒的系统当前时间)
// 直接调用无参数构造方法
Date nowTime = new Date();
// 日期格式化:将日期类型Date,按照指定格式进行转换成为String
// SimpleDateFormat是Java.text包下的。专门负责日期格式化的。
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss SSS");
String nowTimeStr = sdf.format(nowTime);
System.out.println(nowTimeStr); //2019-07-05 10:43:37 507
}
}
String转换成Date
SimpleDateFormat sdf = new SimpleDate("yyyy-MM-dd HH:mm:ss");
Date d = sdf.parse("2008-08-08 08:08:08");
- 注意:字符串的日期格式和
SimpleDateFormat
对象的格式要一致。不然会出现异常:java.text.ParseException
public class DateTest01 {
public static void main(String[] args) throws Exception {
// String转换成Date
String time="2008-08-08 08:08:08 888 ";
// SimpleDateFormat sdf1 = new SimpleDateFormat("格式不能随便写,要和日期字符串格式相同");
SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss SSS");
Date dateTime= sdf1.parse(time);
System.out.println(dateTime); //Fri Aug 08 08:08:08 CST 2008
}
}
获取总毫秒数
-
获取自1970年1月1日 00:00:00 000到当前系统时间的总毫秒数。
public class DateTest02 { public static void main(String[] args) { // 获取自1970年1月1日 00:00:00 000到当前系统时间的总毫秒数 long nowTimeMillis = System.currentTimeMillis(); System.out.println(nowTimeMillis); //1593918468733 } }
-
需求:统计一个方法执行所耗费的时长
public class DateTest02 {
public static void main(String[] args) {
// 统计一个方法耗时
// 在调用目标方法之前记录一个毫秒数
long begin = System.currentTimeMillis();
print();
// 在执行目标方法之后记录一个毫秒数
long end = System.currentTimeMillis();
// 该方法执行所耗费的时长
System.out.println("耗时时长" + (end - begin) + "毫秒"); //90
}
// 需求:统计一个方法执行所耗费的时长
public static void print() {
for (int i = 0; i < 1000; i++) {
System.out.println("i =" + i);
}
}
}
System类的相关属性和方法
System.out
:out
是System
类的静态变量System.out.println()
:println()
方法不是System
类的,是PrintSteam
类的方法。System.gc()
:建议启动垃圾回收器System.currentTimeMillis()
: 获取自1970年1月1日到系统当前时间的总毫秒数。System.exit(0)
:退出JVM
通过毫秒构造Date对象
public class DateTest03 {
public static void main(String[] args) {
// 1970-01-01 00:00:00 001
Date time = new Date(1);//注意:参数是一个毫秒
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss SSS");
String strTime=sdf.format(time);
// 北京是东八区,差8小时
System.out.println(strTime); //1970-01-01 08:00:00 001
}
}
-
获取昨天此时的时间
public class DateTest03 { public static void main(String[] args) { // 获取昨天的此时的时间 Date time = new Date(System.currentTimeMillis() - 1000 * 60 * 60 * 24); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss SSS"); String strTime = sdf.format(time); System.out.println(strTime); //2019-07-04 11:36:57 087 } }
以上是关于日期类的主要内容,如果未能解决你的问题,请参考以下文章
sql 日期转换代码片段 - Dato,120,konvertere
Android Navigation java.language.IllegalStateException 片段类未设置