日付
日付関連の知識を学びたい場合は、最初にDateクラスを知っている必要があります。Dateクラスを使用するには、次のようにインポートする必要があります。importjava.util.Date;
時間の起源
整数、ブール値、浮動小数点数、文字列など、すべてのデータ型は数値の形式で表現する必要があります。
日付の種類も例外ではありません。つまり、2020年10月1日などの日付は、コンピューター内の数字に置き換えられます。
その場合、最も特別な数値はゼロです。数値ゼロはJavaの時刻の原点を表し、対応する日付は1970年1月1日8:0:0です。(中国の太平洋時間帯はグリニッジ標準時から正確に8時間離れているUTC-8であるため、なぜ8時なの
ですか)なぜ1970年に対応するのですか?1969年に最初のUNIXバージョンがリリースされたため:AT&Tは、すべてのことを考慮して、1970年が当時の時間の起源と見なされました。
すべての日付はこの0時に基づいており、ミリ秒ごとに+1が経過します。
日付オブジェクトの作成
Date d=new Date();
時間をもらう
getTime()長整数を取得します。
この整数は、1970.1.108:00:00:000からミリ秒ごとに1ずつ増加することを表します。
import java.util.Date;
public class TestDate {
public static void main(String[] args) {
//注意:是java.util.Date;
//而非 java.sql.Date,此类是给数据库访问的时候使用的
Date now= new Date();
//打印当前时间
System.out.println("当前时间:"+now.toString());
//getTime() 得到一个long型的整数
//这个整数代表 1970.1.1 08:00:00:000,每经历一毫秒,增加1
System.out.println("当前时间getTime()返回的值是:"+now.getTime());
Date zero = new Date(0);
System.out.println("用0作为构造方法,得到的日期是:"+zero);
}
}
演算結果:
System.CurrentTimeMillis();
現在の日付のミリ秒数
newDate()。getTime()とSystem.currentTimeMillis()は同じですが、
マシンのパフォーマンスにより、数十ミリ秒の違いがある場合があります。結局のところ、コードのすべての行実行には時間がかかります
演習の例
助けを借りて、乱数、1999年の最後の日と2021年の最初の日の間のランダムな日付の間のランダムな日付を作成します
import java.text.ParseException;//解析异常类
import java.text.SimpleDateFormat;//日期格式化类
import java.util.Date;
public class SimleDateFormat {
public static void main(String[] args) {
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String str2="2021-01-01 00:00:00";
String str1="1999-12-31 23:59:59";
try {
Date d1=sdf.parse(str1);
System.out.println("1999年的最后一天:"+d1);
Date d2=sdf.parse(str2);
System.out.println("2021年的第一天:"+d2);
long timeMinus=d2.getTime()-d1.getTime();
long timeSum=(long)(Math.random()*(timeMinus+d1.getTime()));
Date d3=new Date(timeSum);
System.out.println("1999-2021间的随机日期:"+d3);
}catch(ParseException e) {
e.printStackTrace();
}
}
}
演算結果: