1.怎么获取系统的当前时间?
查找API帮助文档,Java-util-Dtae类,有一个构造方法
构造方法 Constructor and DescriptionDate()分配一个 Date对象并将它初始化,它代表的时间分配给它,测量精确到毫秒
import java.util.Date;//调用lang包以外的类时需要导包,因为lang包是默认的,用到其它包的类时就需要导包 public class Test03{ public static void main(String[] args) { Date nowTime = new Date(); System.out.println(nowTime); } }//输出结果:Mon Oct 05 14:37:00 CST 2020以上的输出结果的格式是:星期 月份 几号 时间 CST(国际的时间格式)年份
2.以上是输出的时间格式,那是否可以自定义按照自己想要的时间格式进行输出?
Java中提供专门进行时间格式修改的类,查看API帮助文档:Java-text-SimpleFormatDate类
import java.text.SimpleDateFormat; import java.util.Date; public class Test03{ public static void main(String[] args) { Date nowTime = new Date(); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss SSS"); /* yyyy 年(年是4位) MM 月(月是两位) dd 日 HH 时 mm 分 ss 秒 SSS 毫秒(毫秒3位,最高999) sdf是一个对象,这个对象中有一个方法,format(); StringBuffer format(Date date, StringBuffer toAppendTo, FieldPosition pos) 给定的 Date进入日期/时间线和附加的结果给出的 StringBuffer格式。 */ System.out.println(sdf.format(nowTime)); } }//输出结果:2020-10-05 15:11:22 6223.假设现在有一个日期字符串String,怎么转换成Date类型?
String->date
调用parse函数
import java.text.SimpleDateFormat; import java.util.Date; public class Test03 { public static void main(String[] args) throws Exception { String time="2099-10-10 08:08:08 888"; //注意:以下构造sdf2对象时传入的是和你要转换的时间格式保持一致,即和time字符串的形式保持一致 SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss SSS"); Date dateTime =sdf2.parse(time); System.out.println(dateTime); } }//输出结果:Sat Oct 10 08:08:08 CST 20994.
获取自1970年1月1日00:00:00 000到当前系统时间的毫秒数。
public class Test03 { public static void main(String[] args) { long nowTimeMillis=System.currentTimeMillis(); System.out.println(nowTimeMillis); } }//结果:1601883225977
那么这个方法有什么作用呢?
可以用来查看一个方法耗费的时常。
调用前记录毫秒数begin
调用后的记录的毫秒数end
end-begin=这个方法所运行的时常是多少
例如:
public class Test03 { public static void main(String[] args) { long begin=System.currentTimeMillis(); for (int i = 0; i < 500; i++) { System.out.println(i); } long end=System.currentTimeMillis(); System.out.println("这个方法运行的总时长是:"+(end-begin)+"毫秒"); } }//这个方法运行的总时长是:21毫秒5.
通过毫秒数构造Date对象
给出毫秒数,计算从1970年1月1日已经经历过的时间
import java.text.SimpleDateFormat; import java.util.Date; public class Test03 { public static void main(String[] args) { Date time = new Date(1000); SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss sss"); String strTime=sdf.format(time); System.out.println(strTime); } }//1970-01-01 08:00:01 001