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

如何将SQL datetime时间戳转换为可读时间并提取指定时间部分

解决思路:提取并格式化时间部分

嘿,刚好我之前处理过类似的需求,给你分享下具体的思路和代码示例,完全避开废弃的Date类,用现代日期API搞定:

核心思路

其实不用刻意“提取”时间部分——现代日期时间API支持直接通过格式化器指定你要输出的字段,跳过日期部分就行,比手动截取字符串靠谱多了(手动截容易踩格式变动的坑)。

以Java为例(因为你提到Date类弃用,应该是Java场景)

  1. 第一步:把字符串解析为现代日期时间对象
    用LocalDateTime(因为你的时间戳带日期和时间,不含时区)配合DateTimeFormatter解析原字符串:

    import java.time.LocalDateTime;
    import java.time.format.DateTimeFormatter;
    
    public class TimeFormatExample {
        public static void main(String[] args) {
            // 原时间戳字符串
            String timestamp = "2017-12-27 03:31:31.243";
            // 定义解析用的格式化器,匹配原字符串格式
            DateTimeFormatter parseFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SSS");
            // 解析为LocalDateTime对象
            LocalDateTime dateTime = LocalDateTime.parse(timestamp, parseFormatter);
    
  2. 第二步:只格式化时间部分为目标格式
    再定义一个只针对时间的格式化器,指定输出小时(12小时制)、分钟和上午/下午标识:

    // 定义时间格式化器,输出"h:mm a"格式
            DateTimeFormatter timeFormatter = DateTimeFormatter.ofPattern("h:mm a");
            // 格式化得到目标时间字符串
            String formattedTime = dateTime.format(timeFormatter);
            System.out.println(formattedTime); // 输出:3:31 AM
        }
    }
    

    如果想要小写的am/pm,可以加上Locale设置,或者直接转小写:

    // 方法1:指定Locale
    DateTimeFormatter timeFormatter = DateTimeFormatter.ofPattern("h:mm a", java.util.Locale.ENGLISH);
    // 方法2:格式化后转小写
    String formattedTime = dateTime.format(timeFormatter).toLowerCase(); // 输出:3:31 am
    

其他语言的思路(比如JavaScript)

如果是前端场景,用Intl.DateTimeFormat同样能轻松实现:

const timestamp = "2017-12-27 03:31:31.243";
// 把字符串转为Date对象(注意替换空格为T,符合ISO格式)
const date = new Date(timestamp.replace(' ', 'T'));
// 格式化时间部分
const formattedTime = new Intl.DateTimeFormat('en-US', {
  hour: 'numeric',
  minute: 'numeric',
  hour12: true
}).format(date);
console.log(formattedTime); // 输出:3:31 AM
// 转小写直接调用toLowerCase()
console.log(formattedTime.toLowerCase()); // 3:31 am

总结一下:核心就是先把字符串解析为结构化的日期时间对象,再用格式化器只输出你需要的时间字段,完全不用手动截取字符串,既安全又易维护~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 03:32:43