我今天更新到 Android Wear 2.0。我自己开发的表盘现在显示", 005 14"
. 在更新之前,它曾说过"Sun, May 14"
。
获取日期格式的代码:
String pattern = android.text.format.DateFormat.getBestDateTimePattern(locale, "EEEddMMM");
delegate = new SimpleDateFormat(pattern);
delegate.setCalendar(calendar);
通过调试,它获取的值是"EEE, MMM dd"
.
执行实际格式化的代码:
calendar.set(Calendar.DAY_OF_WEEK, time.getDayOfWeek() + 1);
calendar.set(Calendar.DAY_OF_MONTH, time.getDayOfMonth());
// Android hard-codes in a + 1 when formatting as a number.
calendar.set(Calendar.MONTH, time.getMonthOfYear() - 1);
return delegate.format(dummyDate);
我检查了当前的文档SimpleDateFormat
和两者E
,M
据说仍然受支持。那么Wear 2.0 刚刚坏掉了吗?
我认为对于以后的 API 版本,可以通过使用android.icu
替代方案来解决这个问题。但这意味着无限期地支持旧代码和新代码,所以如果事实证明这是他们计划在平台中修复的东西,我宁愿不再浪费时间。