Pertanyaan Apa perbedaan antara tahun dan tahun-era?


Itu DateTimeFormatter dokumentasi kelas mendefinisikan simbol-simbol yang terpisah u untuk tahun dan y tahun-era: https://docs.oracle.com/javase/8/docs/api/java/time/format/DateTimeFormatter.html#patterns

Apa perbedaan antara tahun dan tahun-era?


32
2018-03-12 15:45


asal


Jawaban:


Jawabannya terletak pada dokumentasi untuk IsoChronology

  • era - Ada dua era, 'Era sekarang' (CE) dan 'Before Current Era' (BCE).
  • tahun-of-era - Tahun-era adalah sama dengan tahun proleptic untuk era CE saat ini. Untuk era BCE sebelum era ISO tahun meningkat dari 1 ke atas seiring berjalannya waktu mundur.
  • proleptic-year - Tahun proleptic adalah sama dengan tahun-era untuk era saat ini. Untuk era sebelumnya, tahun memiliki nol, maka nilai negatif.

u akan memberi Anda tahun proleptic. y akan memberi Anda tahun di era itu.

Perbedaannya terutama penting untuk tahun-tahun era BC. Tahun proleptic 0 sebenarnya 1 SM, diikuti oleh tahun proleptik 1 yang merupakan 1 AD. Tahun proleptic bisa negatif, tahun era tidak bisa.

Berikut ini cuplikan yang akan membantu memvisualisasikan cara kerjanya:

DateTimeFormatter formatter = DateTimeFormatter.ofPattern("'proleptic' : u '= era:' y G");

for (int i = 5; i > -6 ; i--) {
    LocalDate localDate = LocalDate.of(i, 3, 14);
    System.out.println(formatter.format(localDate));
}

Keluaran:

proleptic : 5 = era: 5 AD
proleptic : 4 = era: 4 AD
proleptic : 3 = era: 3 AD
proleptic : 2 = era: 2 AD
proleptic : 1 = era: 1 AD
proleptic : 0 = era: 1 BC
proleptic : -1 = era: 2 BC
proleptic : -2 = era: 3 BC
proleptic : -3 = era: 4 BC
proleptic : -4 = era: 5 BC
proleptic : -5 = era: 6 BC

32
2018-03-12 16:00