Como definir um ano de BCE usando Gregoriancalendar
-
25-09-2019 - |
Pergunta
Eu tenho uma tarefa que converte datas de um sistema de calendário para outro.
A documentação para Gregoriancalendar parece sugerir que você posso Use datas com anos de BCE, mas não tenho idéia de como. Se eu simplesmente tornar o ano negativo, ou seja,
GregorianCalendar cal = new GregorianCalendar(-20, 1, 2, 3, 0, 0);
System.out.println(cal.getTime.toString());
Ele imprime 'Sun Fev 02 03:00:00 GMT-05: 00 21', o que claramente não está correto.
Solução
Você precisa definir a época como BC (BC é um campo estático em Calendário gregoriano).
O calendário padrão (gregoriano) tem 2 épocas, BC e AD.
http://java.sun.com/j2se/1.4.2/docs/api/java/util/gregoriancalendar.html
por exemplo
calendar.set(Calendar.ERA, GregorianCalendar.BC);
Outras dicas
A documentação para isso pode ser encontrada: http://java.sun.com/j2se/1.4.2/docs/api/java/util/calendar.html#era
Isto mostra Calendar.ERA
e como os dois GregorianCalendar.AD
e GregorianCalendar.BC
pode ser usado