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

Joda-Time库如何设置输出6位小数的秒级时间精度

解决方案

首先修正两处问题:

  • 你当前解析用的DateTimeFormatter格式串存在错误:小写mm对应分钟,月份需要用大写MM;如果你的时间是24小时制,小时需要用大写HH而非12小时制的小写hh,否则会出现解析结果和预期不符的问题(你当前输出的月份为1月就是该错误导致的)。
  • Joda DateTime默认的toString()方法仅输出毫秒级精度(3位小数),要得到6位微秒精度的输出,需要自定义输出用的格式化器,指定秒的小数部分保留6位。

修正后可运行的完整代码:

import org.joda.time.DateTime;
import org.joda.time.DateTimeZone;
import org.joda.time.format.DateTimeFormat;
import org.joda.time.format.DateTimeFormatter;

public class DateTest {
    public static void main(String[] args) {
        String time = "124204";
        String date = "05/09/25";
        // 修正解析格式串:MM对应月份,HH对应24小时制
        DateTimeFormatter parseFormatter = DateTimeFormat.forPattern("dd/MM/yyHHmmss").withZone(DateTimeZone.UTC);
        String dateInString = date.concat(time);
        DateTime dateTime = DateTime.parse(dateInString, parseFormatter);
        
        // 自定义输出格式,SSSSSS对应6位微秒
        DateTimeFormatter outputFormatter = DateTimeFormat.forPattern("yyyy-MM-dd'T'HH:mm:ss.SSSSSS'Z'").withZone(DateTimeZone.UTC);
        String result = outputFormatter.print(dateTime);
        System.out.println(result);
    }
}

输出结果:

2025-09-05T12:42:04.000000Z

如果你的原始需求确实需要解析05/09/25为2025年1月5日,可自行调整解析格式串的顺序即可,输出逻辑保持不变。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 22:39:00