Android Setting下修改時間與日期格式的問題???
最近一直在頭疼怎樣在修改Settings-----Date&Time---Choose data format 後通知更新桌面時鐘 AppWidget的日期格式跟著Setting的改變而改變...
想實現的效果就是如下:
原先日期格式是這樣,
當點選修改Settings-----Date&Time---Choose data format,
想動態實現,就有點不知道怎麼解決了,
這個佈局其實是一個TextClock
<TextClock
android:id="@+id/date"
style="@style/label"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:format12Hour="@string/abbrev_wday_month_day_no_year"
android:format24Hour="@string/abbrev_wday_month_day_no_year"
android:gravity="center"
android:textColor="@color/clock_white" />
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2007 The Android Open Source Project
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<!-- 字串匹配的鎖定螢幕顯示日期的格式. MM/dd/yyy-->
<string name="abbrev_wday_month_day_no_year">dd-MM-yyyy</string>
<!-- Format for describing the date, for accessibility. -->
<string name="full_wday_month_day_no_year">EEEE, MMMM d</string>
<!-- Default clock style. -->
<string name="default_clock_style">digital</string>
</resources>
第一種解決方法,屬於治標不治本的方法,這種方法是靜態修改abbrev_wday_month_day_no_year的值為想要的日期格式,
比如修改為:<string name="abbrev_wday_month_day_no_year">EE-d-MMM-yyyy</string>
這個有點不靠譜,或者修改為如下格式
日期格式的值的方法有如下:
<string-array name="date_format_values" translatable="false">
<!-- The blank item means to use whatever the locale calls for. -->
<item></item>
<item>MM-dd-yyyy</item>
<item>dd-MM-yyyy</item>
<item>yyyy-MM-dd</item>
<item>EE-MMM-d-yyyy</item>
<item>EE-d-MMM-yyyy</item>
<item>yyyy-MMM-d-EE</item>
</string-array>
老大給的建議讓用TextView代替TextClock,可是自己水平有限重寫的幾次都沒達到理想的效果。。。。
用Textview簡單實現的方法如下:
/**
* 第一步
* 獲取settings中日期的格式
* strTimeFormat的字串是 yyyy-MM-dd
*
* 第二步
* SimpleDateFormat 是一個以國別敏感的方式格式化和分析資料的具體類。
* 它允許格式化 (date -> text)、語法分析 (text -> date)和標準化。
* 根據日期格式顯示不同型別的日期
*
* ***/
ContentResolver cv = this.getContentResolver();
String strTimeFormat = android.provider.Settings.System.getString(cv,
android.provider.Settings.System.DATE_FORMAT);
System.out.println("選擇 Normal (2014-12-31)" + strTimeFormat);
SimpleDateFormat dateFormatter = new SimpleDateFormat(strTimeFormat);
time = dateFormatter.format(Calendar.getInstance().getTime());
textView.setText(time);
實現的效果如下:
日期格式時間跟著設定裡面的改變而改變..
網上收到的一些方法有如下,自己是小菜鳥一枚,看了好久還是沒有解決掉這個問題,希望有大神能夠幫助一下...
相關文章
- win10如何修改時間日期格式 調整時間格式和日期格式的方法Win10
- jira修改RoadMap裡的時間格式,硬核日期格式化
- 【JAVA8新的時間與日期 API】- 傳統時間格式化的執行緒安全問題JavaAPI執行緒
- 日期和時間格式
- Java 8 的日期與時間問題解決方案Java
- js時間戳與日期格式的相互轉換JS時間戳
- 日期時間格式化
- JavaScript時間日期格式化JavaScript
- JavaScript 時間日期格式轉換JavaScript
- JavaScript 日期和時間的格式化JavaScript
- MySQL時間戳轉成日期格式MySql時間戳
- [20180608]asmcmd顯示檔案的日期時間問題ASM
- 日期格式化時註解@DateTimeFormat無效的問題分析ORM
- 把時間戳轉為常用日期格式時間戳
- win7 中 IIS 7 now() 等時間日期函式返回格式問題(不匹配 ACCESS 的 datetime 欄位的格式)Win7函式
- Unix 時間戳與日期時間戳
- 時間日期格式化程式碼例項
- 鴻蒙Next應用國際化:時間與日期格式化鴻蒙
- windows10系統修改時間和日期的方法Windows
- Linux下Shell日期的格式Linux
- 2個例項幫你弄清Python的時間和日期問題Python
- Android 修改系統息屏時間.Android
- Python3時間戳轉換為指定格式的日期Python時間戳
- GORM 自定義time.time日期時間輸出格式GoORM
- windows10系統怎麼修改時間和日期Windows
- linux的centos版本修改時間重啟後無效的問題LinuxCentOS
- sql server日期格式 sqlserver的日期格式SQLServer
- Java 日期和時間 API:實用技巧與示例 - 輕鬆處理日期和時間JavaAPI
- Ubuntu、CentOS修改時區、設定24小時時間格式教程。UbuntuCentOS
- GsonBuilder匯出null值、格式化輸出、日期時間UINull
- 直播平臺原始碼,js 時間戳轉為日期格式原始碼JS時間戳
- js正則格式化日期時間自動補0JS
- Java日期時間API系列42-----一種高效的中文日期格式化和解析方法JavaAPI
- golang日期字串與時間戳轉換Golang字串時間戳
- MongoDB常見問題解答:時間與時區MongoDB
- iOS日期時間iOS
- 日期和時間
- 日期時間類
- 遊戲開發中不同時區下的時間問題遊戲開發