2 回答

TA贡献1893条经验 获得超10个赞
ThaiBuddhistDate
班级
您可以使用 ajava.time.chrono.ThaiBuddhistDate
来完成此操作,请参阅以下示例:
public static void main(String[] args) throws ParseException { ThaiBuddhistDate tbd = ThaiBuddhistDate.now(ZoneId.systemDefault()); System.out.println(tbd.format(DateTimeFormatter.ofPattern("yyyy-MM-dd"))); }
我在系统上得到的输出是
2562-10-24
大多数java.time功能在ThreeTen-Backport项目 中向后移植到 Java 6 和 Java 7 。在ThreeTenABP中进一步适应了早期的 Android (<26) 。

TA贡献1785条经验 获得超8个赞
因为您已经在使用java.util.Calendar和java.text.SimpleDateFormat。
如果您可以在实例化日历时更改区域设置,那么这应该可行:
val thaiCalendar = Calendar.getInstance(Locale("th", "TH"))
println(thaiCalendar.get(Calendar.YEAR)) // prints 2562
但是,如果您只想更改格式,这对我有用:
val notThaiCalendar = Calendar.getInstance()
val thaiFormatter = SimpleDateFormat("yyyy-MM-dd", Locale("th", "TH"))
println(thaiFormatter.format(notThaiCalendar.time)) // prints 2562-10-24
编辑
此解决方案未在 Android 上测试
添加回答
举报