如何将日期转换为这种格式 2015-02-27T15:14:13-06:00

how to convert date to this format 2015-02-27T15:14:13-06:00

我需要将日期转换为这种格式 2015-02-27T15:14:13-06:00

我试过 SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssX"); ,但是这个生成为 2015-04-09T10:39:19-04

感谢

您可以使用具有 ISO 日期格式化程序和解析器的新 Yoda 时间,或者您可以使用 "yyyy-MM-dd'T'HH:mm:ssZ"SimpleDateFormat,它给您 "ccyy-mm-ddThh:mm:ss+zzzz" 并手动插入额外的冒号。

类似于:

new StringBuilder(new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZ").format(date)).insert(22,':').toString();

感谢老脾气。我需要设置时区并添加您的逻辑以插入:在第 22 个位置

DateFormat fmt = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZ");
        fmt.setTimeZone( TimeZone.getTimeZone("US/Central"));
        System.out.println("date to str:"+(new StringBuilder(fmt.format(new Date())).insert(22,':')));