Javaは時刻日付、カレンダーおよびLOCALDATE / LocalDateTimeをオブジェクト

 I.はじめに

  日付:日付、時間、ミリ秒数を含めjava.util.Dateパッケージ。

  カレンダー:java.util.Calendarのパッケージ、抽象修正、時代遅れの多くの方法日付は、Calendarクラスに移動しました。

  LOCALDATE / LocalDateTimeを:java.time.LocalDate / java.time.LocalDateTimeパッケージ、このクラスは不変で、スレッドセーフです。使用してequals比較する方法を。

二、java.util.Date

  setXXXの日付()とのgetXXX()日付、方法日、年、時間、TimezoneOffSetのような取得は放棄されています。

 

三、java.util.Calendarの

  パブリック抽象クラスのカレンダーは  、オブジェクトがSerializableを実装Cloneableを、同等の<拡張カレンダー >

  Calendarクラスは抽象クラスであり、この方法は、特定の瞬間とカレンダフィールドのセットとの間の変換とすることができるようなYEARMONTHDAY_OF_MONTHHOURなど、そしてそのような次の週の取得日としてカレンダフィールドを操作するための手段。時間の瞬間は、日付1970年1 1日夜12時00分00ミリ秒の値で表すことができる:00.000のGMT(グレゴリオ)エポックのオフセット。このクラスは、パッケージの外部に固有のフィールドとカレンダーシステムを達成するための他の方法を提供します。

 

      カレンダーC = Calendar.getInstance(); 
        c.add(Calendar.DATE、 -1)。// 减一天 
        StringBufferのBF = 新しいStringBufferを(); 
        bf.append(c.get(Calendar.YEAR) + "年" ); 
        bf.append(c.get(Calendar.MONTH) +1+ "月" ); 
        bf.append(c.get(Calendar.DATE) + "日" ); 
        bf.append(c.get(Calendar.HOUR_OF_DAY) + "时"); // 24小时制
         // bf.append(c.get(Calendar.HOUR)+ "时")。// 12小时制 
        bf.append(c.get(Calendar.MINUTE)+ "分" ); 
        bf.append(c.get(カレンダー。); 
        bf.append( "本年第" + c.get(Calendar.DAY_OF_YEAR)+ "天;" ); 
        bf.append( "本月第" + c.get(Calendar.DAY_OF_WEEK_IN_MONTH)+ "周;" ); 
        bf.append( "本周第" + c.get(Calendar.DAY_OF_WEEKの)+ "天;" ); 
        bf.append(c.get(Calendar.WEEK_OF_MONTH) + ";今年第" + c.get(Calendar.WEEK_OF_YEAR)+ "周")。    

 

四、java.time.LocalDate / java.time.LocalDateTime

  パブリック最終クラスは、拡張オブジェクトは、一時的な実装TemporalAdjuster、ChronoLocalDate、シリアライズを

  LOCALDATE / LocalDateTimeを日付時刻オブジェクトは、不変日付であり、そして一般的に日付とみなされます。あなたは、日付、曜日や曜日など他の日付フィールドにもアクセスすることができます。たとえば、値が「2007年10月2日には、」保存することができますLocalDate

このクラスは、保管したり、時間や時間帯を示すものではありません。むしろ、それは誕生日のために、説明の日付、です。それは、このようなオフセット、またはタイムゾーンとして、追加の情報なしに、インスタントメッセージングのタイムラインを表現することはできません。

ISO-8601日历系统是当今世界绝大多数的现代民用日历系统。日常生活のグレゴリオ暦のシステムに適用されてきた今日のうるう年のルールに相当します。今日書かれたほとんどのアプリケーションでは、ISO-8601のルールは完全に適切です。しかし、任意の歴史的な日付を使用してアプリケーションを修正するためにそれらを尋ねたが、不適切なISO-8601の方法があります。

 

/ ** 
 *特定の時刻を指定し、現在の時刻を取得します。時間の減算
 * / 
LocalDateTimeをLDT = LocalDateTime.now(); LocalDate.now(); 
LocalTime.now(); 
ldt.plusHours(8L);
ldt.plusSeconds(10L); ldt.format(DateTimeFormatter.ofPattern(
"MM-DD-YYYYのHH:MM:SS" )); LocalDateTimeをLDT2 = ldt.minus(5 、ChronoUnit.MONTHS); ldt2.atZone(ZoneId.systemDefault()); LDT2 = ldt2.withHour(2 ); LDT2 ldt2.withYear =(2015年); LDT2 = ldt2.with(ChronoField.MONTH_OF_YEAR ,. 3 );
/ **
*計算間隔 *の継続日、時、分、秒などの演算 *期間の年のために使用され、月の計算 * / 持続時間
= Duration.between(LDT、ldt2)。 duration.toDays(); duration.toHours(); duration.toMinutes(); 周期期間 = Period.between(ldt.toLocalDate()、ldt2.toLocalDate())。 period.getYears(); period.getMonths(); period.toTotalMonths(); / ** *与日付的转化、フォーマット为文字列* / 日付


= Date.from(ldt2.atZone(ZoneId.systemDefault())toInstant()); LocalDateTimeたdateTime = LocalDateTime.ofInstant(date.toInstant()、ZoneId.systemDefault())。 ldt3.format(DateTimeFormatter.ofPattern( "YYYY-MM-DD HH:MM:SS" ));
/ **
*根据需求需要取得当天的零点 * / LocalDateTimeをtoday_start
= LocalDateTime.of(LocalDate.now()、LocalTime.MIN); // 日ゼロ ストリングtd_st_str = today_start.format(DateTimeFormatter.ofPattern( "YYYYMMDDHHMMSS" )); /取得する日の時間/終了 のLocalDateTime today_end = LocalDateTime.of(LocalDate.now()、LocalTime.MAXを); // 日ゼロ / **
* LocalDateTimeを相互変換と文字列日付
* / てDateTimeFormatter DF
= DateTimeFormatter.ofPattern(「YYYY-MM HH -DD:MM:SS "); のLocalDateTime時間 = LocalDateTime.now(); 文字列LOCALTIME、 = df.format(時間); LocalDateTimeをLDTLocalDateTime.parse =( "2016年8月8日午後06時08分08秒" 、DF) のSystem.out.println( "String型のLocalDateTimeを時間に変わる:" + LOCALTIME); のSystem.out.println(「タイプ文字列LocalDateTimeに変身するための時間: "+ LDT); / ** *ミリ秒を取得しますLocalDateTimeをタイプ別に長く、注意、東8区* / ロングnewSecond1
。。= LocalDateTime.now()toInstant(ZoneOffset.of(" + 8」 。))toEpochMilli();

 

おすすめ

転載: www.cnblogs.com/choua1997/p/11570232.html