如何将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
相关产品推荐
相关产品推荐

