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

Android TextClock 顯示亂碼:格式字符串中保留字符未轉義導致解析錯誤

     編輯:程式設計綜合問答

現象

`time.setFormat24Hour(Language.TIME + "yyyy-MM-dd EEEE")` 顯示 `Ti0e: xxxxxxx`,`Time` 變 `Ti0e`。

原因

`TextClock` 內部用 `SimpleDateFormat` 解析格式字符串,`Language.TIME` 若為 `"Time"`,其中 **`m` 被識別為「分」格式符**,導致解析錯位。

解決

// 1. 轉義保留字符
time.setFormat24Hour(Language.TIME.replace("m", "\\m") + " yyyy-MM-dd EEEE");
// 或
time.setFormat24Hour("'Time' yyyy-MM-dd EEEE");  // 單引號包裹字面量

// 2. 直接使用完整模式常量
time.setFormat24Hour("HH:mm yyyy-MM-dd EEEE");

常用格式符對照

符號含義示例
y年2024
M月07
d日15
H時14
m分30
s秒59
E星期星期一

所有字母均為保留字,字面量必須用單引號 `'` 包裹。

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