Display Era details (AD BC) in Java Date using SimpleDateFormat

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);




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


  • How to convert ad to bc, or bc to ad using Java era?
    anonymous 19 Aug 2022 11:02:22 GMT
  • I was looking for this - Thanks
    anonymous 24 Apr 2022 12:04:16 GMT
  • Further comments disabled!

🎉 We are celebrating the 10th years of Code2care! Thank you for all your support!

We strongly support Gender Equality & Diversity.

Follow Us: GitHub | Facebook | Twitter | Instagram