Display Era details (AD BC) in Java Date


In order to display the Era the date belongs to AD or BC for a date in Java you need to make use of the SimpleDateFormat class with the date pattern that makes use of G

Example: Display Era in Java date

package com.company;

import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class Main {

    public static void main(String[] args) throws ParseException {

        String beforeChrisDate = "22 01 -2020";
        String annoDominiDate = "22 01 2021";

        DateFormat simpleDateFormat = new SimpleDateFormat("dd MM yyyy");
        DateFormat simpleDateFormatEra = new SimpleDateFormat("dd MM yyyy G");

        Date bcDate = simpleDateFormat.parse(beforeChrisDate);
        Date adDate = simpleDateFormat.parse(annoDominiDate);

        System.out.println(simpleDateFormatEra.format(bcDate));
        System.out.println(simpleDateFormatEra.format(adDate));

    }

}

Output:
22 01 2021 BC
22 01 2021 AD

As you can see in the above example, we first created a string that holds the date in dd MM yyyy format, then we converted it into a Date object and while displaying the date we used the format dd MM yyyy G, the negative year is displayed with suffix BC - Before Christ and positive year is displayed as AD - Anno Domini.

Display Date with BC and AD Era Java
Display Date with BC and AD Era Java