Android Framework設置時間為24小時制

文章目錄

  • 定位源碼
  • 實現
  • 附錄
    • 12 小時制與 24 小時制的詳細解析
      • 一、基本定義與核心區別
      • 二、轉換方法與示例
      • 三、應用場景與文化差異
      • 四、延伸知識:特殊計時制與歷史背景

目的是把設置中使用默認語言區域關掉,并把使用24小時制打開
如下圖為原始的:
在這里插入圖片描述
修改后變成這樣
在這里插入圖片描述

定位源碼

查找Android SDK xml配置文件中的關鍵字def_time_12_24

find vendor/ -name "*.xml" | xargs grep def_time_12_24
xargs: unmatched single quote; by default quotes are special to xargs unless you use the -0 option
find device/ -name "*.xml" | xargs grep def_time_12_24
find frameworks/base/ -name "*.xml" | xargs grep def_time_12_24

有一些工程可以直接在
frameworks/base/packages/SettingsProvider/res/values/defaults.xml
找到

    <!-- Default for Settings.System.TIME_12_24 --><string name="def_time_12_24" translatable="false">12</string>

實現

修改xml
如果能直接在xml中找到,則直接把12改成24就行了

    <!-- Default for Settings.System.TIME_12_24 --><string name="def_time_12_24" translatable="false">24</string>

如果找不到,需要自行添加,這里要注意,不同的芯片廠添加的位置不一樣的。
比如mtk
vendor/mediatek/proprietary/packages/apps/SettingsProvider/res/values/defaults.xml
在最后面加上

    <!-- Default for Settings.System.TIME_12_24 --><string name="def_time_12_24" translatable="false">24</string>

修改java
frameworks/base/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java
如果是mtk,則是
vendor/mediatek/proprietary/packages/apps/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java
在private void loadSystemSettings(SQLiteDatabase db)函數中添加這句:

loadStringSetting(stmt, Settings.System.TIME_12_24, R.string.def_time_12_24); // 24小時時間格式

附錄

12 小時制與 24 小時制的詳細解析

一、基本定義與核心區別

  1. 12 小時制(12-hour clock)
  • 定義:將一天分為上午(AM, Ante Meridiem)和下午 / 晚上(PM, Post Meridiem)兩個時段,每個時段 12 小時。
  • 表示方式:
    上午:1:00 AM - 11:59 AM(午夜 12 點為 12:00 AM)。
    下午 / 晚上:1:00 PM - 11:59 PM(中午 12 點為 12:00 PM)。
    例:下午 3 點表示為 3:00 PM,午夜 12 點表示為 12:00 AM。
  1. 24 小時制(24-hour clock)
  • 定義:直接用 0:00 到 23:59 表示一天中的每個時刻,無需區分上午 / 下午。
  • 表示方式:
    凌晨:0:00 - 5:59。
    上午:6:00 - 11:59。
    下午:12:00 - 17:59。
    晚上:18:00 - 23:59。
    例:下午 3 點表示為 15:00,午夜 12 點表示為 00:00 或 24:00(部分場景中 24:00 用于表示一天結束)。

二、轉換方法與示例

  1. 12 小時制轉 24 小時制
  • AM 時段:小時數不變,去掉 AM。
    例:9:30 AM → 09:30(或 9:30)。
  • PM 時段:小時數 + 12,去掉 PM。
    例:3:15 PM → 15:15,12:00 PM → 12:00(中午)。
  • 特殊情況:12:00 AM → 00:00(午夜)。
  1. 24 小時制轉 12 小時制
  • 0:00-11:59:小時數不變,加 AM(12:00 除外)。
    例:8:45 → 8:45 AM,12:00 → 12:00 PM(中午)。
  • 12:00-23:59:小時數 - 12,加 PM。
    例:16:20 → 4:20 PM,23:00 → 11:00 PM。
    特殊情況:24:00 → 12:00 AM(午夜,僅在特定場景使用)。

三、應用場景與文化差異

  • 12 小時制的常見地區:
    美國、英國、加拿大等英語國家,以及部分拉丁美洲、亞洲國家(如印度)。
    場景:日常對話、電視節目、社交媒體(如 “晚上 7 點見”)。
  • 24 小時制的常見地區:
    中國、歐洲、澳大利亞、俄羅斯等多數國家。
    場景:
    專業性領域:醫院(如用藥時間 “14:00”)、航空(航班起飛時間 “06:30”)、軍事(“22:00 時發動進攻”)。
    公共服務:交通時刻表(火車 “19:45 開”)、公共設施開放時間(“08:00-22:00”)。
    文化差異影響:
    12 小時制更符合自然語言習慣,但可能因 AM/PM 遺漏導致誤解(如 “12 點見面” 可能指中午或午夜)。
    24 小時制因無歧義性,更適用于需要精確計時的場景(如科研、工業生產)。

四、延伸知識:特殊計時制與歷史背景

  • 軍事時間(Military Time):本質是 24 小時制,但表述方式不同(如 “1500 小時” 表示 15:00,讀作 “fifteen hundred hours”)。
  • 歷史起源:12 小時制起源于古埃及(將白天和黑夜各分為 12 小時),24 小時制則在工業革命后因標準化需求逐漸普及。
  • 技術應用:計算機系統、編程中普遍使用 24 小時制(如 Unix 時間戳以 00:00:00 為起點)。
    作者:帥得不敢出門

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/912117.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/912117.shtml
英文地址,請注明出處:http://en.pswp.cn/news/912117.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

基于STM32設計的掃地機器人

一、前言 1.1 項目介紹 【1】項目開發背景 隨著社會節奏的加快和人們生活方式的改變&#xff0c;智能家居產品逐漸走入千家萬戶。作為智能清潔系統的重要組成部分&#xff0c;掃地機器人憑借其自動化、高效性和便捷性&#xff0c;成為現代家庭中不可或缺的智能設備之一。傳統…

什么是接口測試?

2025最新Jmeter接口測試從入門到精通&#xff08;全套項目實戰教程&#xff09; 接口測試概念 接口測試是項目測試的一部分&#xff0c;它測試的主要對象是接口&#xff0c;是測試系統組件間接口的一種測試。接口測試主要用于檢測外部系統與所測系統之間以及內部各系統之間的交…

JDY-23藍牙模塊與電腦的連接方式

JDY-23藍牙模塊支持多種連接方式&#xff0c;包括SPP&#xff08;串口通信&#xff09;模式和BLE&#xff08;低功耗藍牙&#xff09;模式。以下是與電腦連接的具體方法&#xff1a; 1. 通過SPP模式連接 JDY-23模塊支持SPP協議&#xff0c;可以通過串口與電腦通信。以下是連接…

【網絡】Linux 內核優化實戰 - net.core.rmem_max

目錄 參數作用與原理默認值與查看方法調整場景與方法適用場景調整方法 與其他參數的協同性能影響與注意事項典型案例總結 net.core.rmem_max 是 Linux 內核中控制 套接字接收緩沖區&#xff08;Receive Buffer&#xff09;最大允許值 的參數。它與 net.core.rmem_default&#…

設計模式 | 工廠模式

工廠模式&#xff08;Factory Pattern&#xff09; 是創建型設計模式的核心成員&#xff0c;它通過將對象創建的邏輯封裝起來&#xff0c;實現了創建與使用的解耦。本文將深入探討工廠模式的核心思想、實現技巧以及在C中的高效實現方式。 為什么需要工廠模式&#xff1f; 在軟…

數字孿生技術驅動UI前端變革:從靜態展示到動態交互的飛躍

hello寶子們...我們是艾斯視覺擅長ui設計、前端開發、數字孿生、大數據、三維建模、三維動畫10年經驗!希望我的分享能幫助到您!如需幫助可以評論關注私信我們一起探討!致敬感謝感恩! 在數字化轉型的深水區&#xff0c;數字孿生技術正以破竹之勢重構 UI 前端的技術邏輯與設計理念…

Django實戰:自定義中間件實現全鏈路操作日志記錄

文章目錄 一、中間件介紹激活中間件生命周期 二、自定義中間件中間件鉤子函數基于類的中間件 三、實戰案例操作日志功能參考資料 一、中間件 介紹 在 Django 中&#xff0c;中間件&#xff08;Middleware&#xff09;是一組輕量級、底層的插件系統&#xff0c;用于全局地改變…

Java編程之迭代器模式(Iterator Pattern)

引言&#xff1a; 走進圖書館&#xff0c;你站在一排書架前&#xff0c;想要瀏覽書籍。你會一格格地從左到右翻閱書籍&#xff0c;而不是去研究書架是什么。 一本書一本書地翻&#xff0c;才知道書架上藏了什么書&#xff0c;研究書架的構造是不知道書籍的內容的。 這種“逐本…

ARM64 linux系統的一般執行過程

1、正在運行的用戶進程X 2、發生異常&#xff08;包括系統調用等&#xff09;&#xff0c;CPU完成的工作&#xff1a;把當前程序指針寄存器PC放入ELR_EL1寄存器&#xff0c;把PSTATE放入SPSR_EL1寄存器&#xff0c;把異常產生的原因放在ESR_EL1寄存器&#xff0c;將異常向量表…

Vue3+ element 實現導入導出

一、導入功能相關代碼分析 相關變量定義 importVisible&#xff1a;這是一個ref類型的響應式變量&#xff0c;用于控制導入對話框的顯示與隱藏&#xff0c;初始值為false。當用戶點擊 “導入” 按鈕時&#xff0c;會嘗試將其值設為true來顯示導入對話框&#xff0c;若出現異常則…

Git安裝(純小白版)

一、Git安裝 1. 簡介 Git是一款免費開源的分布式版本控制系統&#xff0c;常用于軟件開發。它能記錄文件在不同時間的改動&#xff0c;讓用戶在需要時查看、恢復舊版本。支持多人協作開發&#xff0c;多人可同時修改項目文件&#xff0c;Git會處理好沖突。開發者能在本地創建…

cocos2 本地根據文本內容生成二維碼

cocos2 本地根據文本內容生成二維碼 之前做了一個功能&#xff0c;就是cocos2小游戲&#xff0c;結算頁面需要有一個二維碼&#xff0c;二維碼內容是一個網址&#xff0c;這個網址需要根據用戶游玩分數確定訪問哪個網址&#xff0c;但是這個小游戲是單機小游戲&#xff0c;不連…

87.xilinx FPGA讀取器件id方法

dout數據高位先出msb module chip_id_reader(input clk,input reset,output [56:0] dna_value,output dna_valid );reg [6:0] bit_count;reg [56:0] dna_shift_reg;reg dna_read;reg dna_shift;wire dna_out;// 實例化DNA_PORT原語DNA_PORT #(.SIM_DNA_VALUE(57h123456789ABCD…

AcWing--數據結構(二)

Trie 樹 用來高效的快速存儲和查找字符串集合的數據結構 如存儲&#xff1a;abcdef,abdef,aced,... 從根節點開始存儲&#xff0c;從前往后存儲&#xff0c;看是否有a&#xff0c;沒有就創建&#xff0c;依次存儲。 一般在最后一個字符打個標記&#xff0c;意思就是當前字符…

論基于架構的軟件設計方法(ABSD)及應用

2025年3月22日作 題目 基于架構的軟件設計&#xff08;Architecture-Based Software Design, ABSD&#xff09;方法以構成軟件架構的商業、質量和功能需求等要素來驅動整個軟件開發過程。ABSD是一個自頂向下&#xff0c;遞歸細化的軟件開發方法&#xff0c;它以軟件系統功能的…

【Docker基礎】Docker容器管理:docker exec詳解

目錄 1 docker exec命令概述 1.1 命令定位與作用 1.2 與相似命令對比 2 基本語法與參數解析 2.1 完整命令語法 2.2 核心參數詳解 2.2.1 -i, --interactive 2.2.2 -t, --tty 2.2.3 -d, --detach 2.2.4 -e, --env 2.2.5 -u, --user 2.2.6 -w, --workdir 3 典型使用場…

CSS3實現同心圓效果

效果圖&#xff1a; 文本左側顯示一個 外圓&#xff08;30px&#xff0c;半透明&#xff09; 和 內圓&#xff08;12px&#xff0c;實色&#xff09; 的同心圓&#xff1a; <!DOCTYPE html> <html> <head><style>.text-with-circles {position: rela…

Spring Boot項目開發實戰銷售管理系統——系統設計!

Spring Boot項目開發實戰——銷售管理系統 在前面的章節中我們詳細介紹了Spring Boot各個功能的使用&#xff0c;本章將新建一個銷售管理系統項目&#xff0c;演示項目從需求分析到功能分解&#xff0c;再到各個功能的實現過程&#xff0c;最后再使用Docker部署上線的完整過程…

RK3588開發筆記-Hailo AI模塊調試

目錄 前言 一、RK3588 與 Hailo AI 模塊簡介 RK3588 Hailo AI 模塊 二、原理圖連接 三、內核配置 四、Hailo驅動編譯 五、Hailo模塊驗證 總結 前言 在邊緣計算和人工智能應用不斷發展的今天,將高性能的 AI 模塊與功能強大的開發板相結合,能為各種創新應用提供堅實的基…

【Pytorch】語言模型上的動態量化

目錄 ■導言 ①定義模型 ②加載文本數據 ③加載預訓練模型 ④測試動態量化 ■結論 ■導言 量化涉及將模型的權重和激活從float轉換為int&#xff0c;這可以導致更小的模型大小和更快的推理&#xff0c;并且只對準確性造成很小的影響。 本文將把最簡單的量化形式-動態量…