第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Android中使用泰歷解析特定格式的日期

Android中使用泰歷解析特定格式的日期

largeQ 2023-12-13 16:34:39
對于 Android 應(yīng)用程序,我需要解析泰國本地格式的日期(例如,2019 年應(yīng)返回為 2562)。我不明白我該怎么做。目前用于SimpleDateFormatter解析默認(rèn)本地格式的日期。fun adjustTimePattern(dateString: String, oldPattern: String, newPattern: String): String? {    val dateFormat = SimpleDateFormat(oldPattern, Locale.getDefault())    dateFormat.timeZone = TimeZone.getTimeZone("UTC")    return try {        val calendar = Calendar.getInstance()        calendar.time = dateFormat.parse(dateString)        val newFormat = SimpleDateFormat(newPattern, Locale.getDefault())        newFormat.format(calendar.time)    } catch (e: ParseException) {        return null    }}嘗試對 locale 的值進(jìn)行硬編碼(使用Locale("th", "TH")而不是Locale.getDefault()),但很幸運,因為 SimpleDateFormat 類使用公歷本身。也嘗試過使用LocalDate& DateTimeFormatter,但年份值無論如何都不會改變。fun formatTime(pattern: String): String {    return if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {        val formatter = DateTimeFormatter.ofPattern(pattern, Locale("th", "TH"))        LocalDate.now().format(formatter)    } else {        ""    }}.誰能幫我解決這個問題嗎?
查看完整描述

2 回答

?
白豬掌柜的

TA貢獻(xiàn)1893條經(jīng)驗 獲得超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")));
}

我在系統(tǒng)上得到的輸出是

2562-10-24

大多數(shù)java.time功能在ThreeTen-Backport項目?中向后移植到 Java 6 和 Java 7?。在ThreeTenABP中進(jìn)一步適應(yīng)了早期的 Android (<26)?。

查看完整回答
反對 回復(fù) 2023-12-13
?
慕的地10843

TA貢獻(xiàn)1785條經(jīng)驗 獲得超8個贊

因為您已經(jīng)在使用java.util.Calendar和java.text.SimpleDateFormat。


如果您可以在實例化日歷時更改區(qū)域設(shè)置,那么這應(yīng)該可行:


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 上測試


查看完整回答
反對 回復(fù) 2023-12-13
  • 2 回答
  • 0 關(guān)注
  • 206 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號