currentTimeMillis()
System.currentTimeMillis返回的是從1970.1.1 UTC 零點開始到現在的時間,精確到毫秒,平時我們可以根據System.currentTimeMillis來計算當前日期,星期幾等,可以方便的與Date進行轉換
返回以毫秒為單位的當前時間。注意,當返回值的時間單位是毫秒時,值的粒度取決於底層操作系統,並且粒度可能更大。例如,許多操作系統以幾十毫秒為單位測量時間。
請參閱 Date 類的描述,了解可能發生在“計算機時間”和協調世界時(UTC)之間的細微差異的討論。
nanoTime()
System.nanoTime提供相對精確的計時,但是不能用他來計算當前日期
返回最准確的可用系統計時器的當前值,以毫微秒為單位。
此方法只能用於測量已過的時間,與系統或鍾表時間的其他任何時間概念無關。
返回值表示從某一固定但任意的時間算起的毫微秒數(或許從以后算起,所以該值可能為負)。此方法提供毫微秒的精度,但不是必要的毫微秒的准確度。它對於值的更改頻率沒有作出保證。在取值范圍大於約 292 年(263 毫微秒)的連續調用的不同點在於:由於數字溢出,將無法准確計算已過的時間
JDK中有一個final class System
其中提供了一些輸入輸出等方法,並且有毫秒級的系統時間和毫微秒的nanotime
import java.text.SimpleDateFormat; import java.util.Calendar; public class SysTime { public static void main(String[] args) { SimpleDateFormat sf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String strsystime = sf.format(System.currentTimeMillis());//系統當前時間 String strsysnanotime = sf.format(System.nanoTime());//系統當前時間 System.out.println(strsystime); System.out.println(strsysnanotime); long systime = System.currentTimeMillis(); System.out.println(Calendar.getInstance().getTime().getTime()); System.out.println(systime); System.out.println(systime=(systime/1000)); System.out.println("秒:"+ systime%60); System.out.println(systime=(systime/60)); System.out.println("分鍾:"+systime%60); System.out.println(systime=(systime/60)); System.out.println("小時:"+systime%24); long nano = System.nanoTime(); System.out.println(nano); } }
import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; public class GetTime { public static void main(String[] args) { Date date = new Date(); long time = date.getTime() ; System.out.println(time); Calendar calendar = Calendar.getInstance(); System.out.println(Calendar.getInstance().getTime().getTime()); calendar.add(Calendar.MINUTE, -1); System.out.println(calendar.getTime().getTime()); Calendar calendar1 = Calendar.getInstance(); System.out.println(calendar1.getTime().getTime()); calendar1.add(Calendar.SECOND, -90); System.out.println(calendar1.getTime().getTime()); Calendar calendar2 = Calendar.getInstance(); calendar2.add(Calendar.DATE, 1); System.out.println(calendar2.getTime().getTime()); System.out.println("==============="); long systime = System.currentTimeMillis(); System.out.println(Calendar.getInstance().getTime().getTime()); System.out.println(systime); System.out.println(systime=(systime/1000)); System.out.println("秒:"+ systime%60); System.out.println(systime=(systime/60)); System.out.println("分鍾:"+systime%60); System.out.println(systime=(systime/60)); System.out.println("小時:"+systime%24); } }
當前Java 中除了System類中獲取系統時間之外,還有Date,Calender等可以獲取系統時間
其中Date是一個普通的類,實現了implements java.io.Serializable, Cloneable, Comparable<Date>
Calendar是一個抽象類, 實現了implements Serializable, Cloneable, Comparable<Calendar>
System是一個最終類