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

如何将24小时制DateTime格式转换为12小时制?

24小时制转12小时制实现方案

JavaScript 实现

直接用原生Date对象处理,或者手动拆分时间字符串转换:

// 方法1:利用Date对象格式化
function convertTo12Hour(timeStr) {
  const [hours, minutes] = timeStr.split(':');
  const date = new Date();
  date.setHours(hours, minutes);
  return date.toLocaleTimeString('en-US', { hour: 'numeric', minute: '2-digit', hour12: true });
}

// 方法2:手动计算(更轻量)
function convertTo12HourManual(timeStr) {
  let [hours, minutes] = timeStr.split(':').map(Number);
  const period = hours >= 12 ? 'PM' : 'AM';
  hours = hours % 12 || 12; // 0点转12,12点保持12
  return `${hours}:${minutes.toString().padStart(2, '0')} ${period}`;
}

// 对应你截图里的13:00测试
console.log(convertTo12Hour('13:00')); // 输出 "1:00 PM"

Java 实现

用Java 8+的DateTimeFormatter(推荐)或者旧版SimpleDateFormat:

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

public class TimeConverter {
    public static void main(String[] args) {
        String time24 = "13:00";
        LocalTime localTime = LocalTime.parse(time24);
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("hh:mm a");
        System.out.println(localTime.format(formatter)); // 输出 "01:00 PM"

        // 旧版兼容写法
        /*
        SimpleDateFormat sdf24 = new SimpleDateFormat("HH:mm");
        SimpleDateFormat sdf12 = new SimpleDateFormat("hh:mm a");
        try {
            System.out.println(sdf12.format(sdf24.parse("13:00")));
        } catch (ParseException e) {
            e.printStackTrace();
        }
        */
    }
}

Swift 实现

利用DateFormatter快速转换:

func convertTo12Hour(timeStr: String) -> String? {
    let inputFormatter = DateFormatter()
    inputFormatter.dateFormat = "HH:mm"
    
    guard let date = inputFormatter.date(from: timeStr) else {
        return nil
    }
    
    let outputFormatter = DateFormatter()
    outputFormatter.dateFormat = "hh:mm a"
    outputFormatter.locale = Locale(identifier: "en_US_POSIX")
    return outputFormatter.string(from: date)
}

// 测试调用
if let time12 = convertTo12Hour(timeStr: "13:00") {
    print(time12) // 输出 "01:00 PM"
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 04:52:41