首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

Android 日期格式化:使用 DecimalFormat 實現雙位數補零顯示

     編輯:程式設計綜合問答

需求場景

日期顯示需補零對齊,如 2023-04-05 而非 2023-4-5。

方案一:DecimalFormat(針對數字)

DecimalFormat df = new DecimalFormat("00"); // 兩位數,不足補零
int year = 2023, month = 4, day = 5;
String dateStr = df.format(year) + "-" + df.format(month) + "-" + df.format(day);
// 結果:2023-04-05

方案二:SimpleDateFormat(標準日期格式化,推薦)

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd", Locale.getDefault());
Date date = new Date(); // 或 Calendar.getInstance().getTime()
String dateStr = sdf.format(date);
// 結果:2023-04-05

// 也可直接格式化 Calendar
Calendar c = Calendar.getInstance();
String dateStr = sdf.format(c.getTime());

方案三:DateTimeFormatter (Java 8+ / API 26+)

LocalDate date = LocalDate.now();
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
String dateStr = date.format(formatter);

方案四:String.format

String dateStr = String.format(Locale.getDefault(), "%04d-%02d-%02d", year, month, day);

對比總結

方法適用場景優點
SimpleDateFormat日期對象格式化標準、支持解析、本地化
DateTimeFormatterJava 8+ 新項目線程安全、不可變、功能豐富
DecimalFormat純數字補零簡單直接
String.format拼接場景格式化功能強大

注意事項

  • Calendar.MONTH 從 0 開始,顯示時需 +1
  • SimpleDateFormat 非線程安全,併發環境用 ThreadLocal 或創建新實例
  • 生產環境建議指定 Locale 避免不同地區格式差異

總結

日期格式化首選 SimpleDateFormat 或 DateTimeFormatter,純數字補零用 DecimalFormat("00") 或 String.format("%02d")。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved