【问题标题】:Fixed length of month and day in date format?日期格式的固定月份和日期长度?
【发布时间】:2011-09-24 19:33:20
【问题描述】:

有没有什么方法可以将 Date 对象格式化为固定的 Day 和 Month 长度,以便在列中保持良好的对齐? 例如:

2010 年 5 月 15 日 2010 年 1 月 10 日

代替

2010 年 5 月 15 日 2010 年 1 月 10 日

谢谢!

【问题讨论】:

    标签: java date format


    【解决方案1】:

    看看java.util.Formatter类,其格式方法与String.format(...)相同,与System.out.printf类似。

    例如:

    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 - 如果您尝试处理可变宽度字符的对齐,您将无法使用纯字符串来完成。您需要使用某种标记;例如HTML 片段或 Swing 布局。
    • @Stephen:是的,有需要我想让日期部分垂直对齐。但我不能使用 HTML,因为它看起来很慢。我可以使用不同的标签来存储不同的部分,但是如果列宽小的话,让文本换行显得过于手动和困难。
    • @Loc - 好吧,也许您应该问一个新问题,这一次要明确准确什么应该显示日期,以及您尝试了什么。
    猜你喜欢
    • 2020-10-18
    • 1970-01-01
    • 2021-03-23
    • 1970-01-01
    • 1970-01-01
    • 2011-05-23
    • 1970-01-01
    • 1970-01-01
    • 2017-01-19
    相关资源
    最近更新 更多