Java 日期格式的月和日的固定长度?

Java 日期格式的月和日的固定长度?,java,date,format,Java,Date,Format,有没有办法将Date对象的格式设置为固定的日和月长度,以便在列中保持良好的对齐? 例如: 15 May 2010 10 January 2010 import java.util.Calendar; import java.util.Date; import java.util.GregorianCalendar; public class FormatDateCalendar { public static final String FORMAT_STRING = "%1$

有没有办法将Date对象的格式设置为固定的日和月长度,以便在列中保持良好的对齐? 例如:

15 May 2010 10 January 2010
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;

public class FormatDateCalendar {
   public static final String FORMAT_STRING = "%1$-3td %1$-9tB %1$tY";
   public static void main(String[] args) {
      Calendar c1 = new GregorianCalendar(2011, Calendar.FEBRUARY, 3);
      Calendar c2 = new GregorianCalendar(2010, Calendar.MAY, 15);
      Date today = new Date();

      System.out.printf(FORMAT_STRING + "%n", c1);
      System.out.printf(FORMAT_STRING + "%n", c2);
      System.out.printf(FORMAT_STRING + "%n", today);
   }
}
2010年5月15日 2010年1月10日 而不是

15 May 2010 10 January 2010 2010年5月15日 2010年1月10日 谢谢

看看这个类,它的format方法与String.format(…)相同,与System.out.printf类似

例如:

15 May 2010 10 January 2010
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;

public class FormatDateCalendar {
   public static final String FORMAT_STRING = "%1$-3td %1$-9tB %1$tY";
   public static void main(String[] args) {
      Calendar c1 = new GregorianCalendar(2011, Calendar.FEBRUARY, 3);
      Calendar c2 = new GregorianCalendar(2010, Calendar.MAY, 15);
      Date today = new Date();

      System.out.printf(FORMAT_STRING + "%n", c1);
      System.out.printf(FORMAT_STRING + "%n", c2);
      System.out.printf(FORMAT_STRING + "%n", today);
   }
}

谢谢我的要求是正确的,但字母的宽度仍然有问题,这会使某些字体的对齐错误。@Loc-如果您试图处理可变宽度字符的对齐,则无法使用纯字符串。您需要使用某种标记;e、 HTML片段或Swing布局。@Stephen:是的,在需要时,我想使日期部分垂直对齐。但是我不能使用HTML,因为它看起来很慢。我可以使用不同的标签来存储不同的部分,但如果列宽很小,则似乎太手工了,很难对文本进行换行。@Loc-也许你应该问一个新问题,这次要明确显示日期的内容以及你尝试过的内容。创建: