0
我正在使用Joda DateTime(2.9.2)的最新版本,当我尝试格式化为1/1/1582或更早版本的Java日期时,Joda无法正确格式化日期。下面是一个示例程序,以显示这一点:乔达未在15年1月1日或之前格式化日期?
import java.util.*;
import java.text.*;
import org.joda.time.*;
import org.joda.time.format.*;
public class JodaTest {
public static void main(String[] args) throws Exception {
SimpleDateFormat sdf = new SimpleDateFormat("MM/dd/yyyy");
Date dt = sdf.parse("1/1/1582");
System.out.println("Date: " + dt);
System.out.println("Date Formatted via SDF: " + sdf.format(dt));
DateTime joda = new DateTime(dt);
DateTimeFormatter fmt = DateTimeFormat.forPattern("dd-MMM-yy");
fmt.withLocale(Locale.US);
System.out.println("Joda: " + fmt.print(joda));
}
}
输出:
Date: Mon Jan 01 00:00:00 EST 1582
Date Formatted via SDF: 01/01/1582
Joda: 11-Jan-82
SimpleDateFormat formats the date correctly as 1/1/1582 but Joda formats it as 1/11/1582.
Joda-Time中的默认值是预测公历日历。你将需要像'DateTime joda = new DateTime(dt,GJChronology.getInstance());' –
这工作。谢谢。 –