You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React Native中如何获取设备本地12小时制当前时间?

将24小时制时间转换为12小时制的实用方案

转换核心逻辑很清晰:判断当前小时所属的AM/PM时段,把13-23点转成1-11点,0点转成12点,再加上时段标识即可。下面是几种主流编程语言的实现方式:

Python 实现

直接用内置格式化方法

借助datetime模块的strftime可以一步到位:

from datetime import datetime

now = datetime.now()
# %I 表示12小时制的小时(01-12),%p 表示AM/PM
twelve_hour_str = now.strftime("%I:%M:%S %p")
print(twelve_hour_str)  # 示例输出:"09:15:30 AM"

手动实现转换(适合理解原理)

如果想自己控制逻辑:

now = datetime.now()
hour = now.hour
minute = now.minute
second = now.second

period = "AM" if hour < 12 else "PM"
# 取模转换小时,0点转成12
twelve_hour = hour % 12 if hour % 12 != 0 else 12

# 格式化补零,确保两位数
formatted_time = f"{twelve_hour:02d}:{minute:02d}:{second:02d} {period}"
print(formatted_time)

JavaScript 实现

用本地化时间格式化

浏览器或Node.js环境下,直接调用toLocaleTimeString:

const now = new Date();
// 指定en-US locale并开启12小时制
const twelveHourStr = now.toLocaleTimeString('en-US', {
  hour: '2-digit',
  minute: '2-digit',
  second: '2-digit',
  hour12: true
});
console.log(twelveHourStr); // 示例输出:"09:15:30 AM"

手动转换逻辑

const now = new Date();
const hour = now.getHours();
const minute = now.getMinutes();
const second = now.getSeconds();

const period = hour < 12 ? 'AM' : 'PM';
const twelveHour = hour % 12 || 12;

// 补零处理
const formatted = `${twelveHour.toString().padStart(2, '0')}:${minute.toString().padStart(2, '0')}:${second.toString().padStart(2, '0')} ${period}`;
console.log(formatted);

Java 实现

推荐用Java 8+的DateTimeFormatter(线程安全,比旧的SimpleDateFormat更可靠):

import java.time.LocalTime;
import java.time.format.DateTimeFormatter;

public class TimeConverter {
    public static void main(String[] args) {
        LocalTime now = LocalTime.now();
        // hh表示12小时制小时(01-12),a表示AM/PM
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("hh:mm:ss a");
        String twelveHourStr = now.format(formatter);
        System.out.println(twelveHourStr); // 示例输出:"09:15:30 AM"
    }
}

通用注意事项

  • 补零:确保小时、分钟、秒显示为两位数(比如1点显示为01),大部分格式化工具默认支持,手动转换时记得用字符串补零方法。
  • 时段标识:不同地区可能用小写(am/pm)或其他格式,可根据需求调整格式字符串。
  • 时区:如果处理跨时区时间,要保证时间对象的时区设置正确,避免转换出错。

内容的提问来源于stack exchange,提问作者randelski

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 01:20:35