是否可以使用冒号使用日期格式的offset参数?

问题描述 投票:0回答:4

我正在使用Java的SimpleDateFormat,这是我的代码: Date date = new Date(); SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd'T'hh:mm:ss.SSSZ"); String strDate = simpleDateFormat.format(date); System.out.println(strDate);

打印输出:

2019-11-15T11:59:47.289 + 0200

但是,我想在偏移量内包含一个冒号,这意味着它需要看起来像这样:

2019-11-15T11:59:47.289 + 02:00

是否有添加添加像此处第二个示例所示的时区的方法?

java date simpledateformat
4个回答
1
投票

您正在谈论的不是时区(如UTC),而是偏移量(如+01:00)。

您可以使用具有内置java.time的现代日期时间API DateTimeFormatter.ISO_OFFSET_DATE_TIME,该API根据需要设置偏移量的格式:

import java.time.OffsetDateTime;
import java.time.format.DateTimeFormatter;


public class StackoverflowDemo {

    public static void main(String[] args) {
        OffsetDateTime odt = OffsetDateTime.now();
        System.out.println(odt.format(DateTimeFormatter.ISO_OFFSET_DATE_TIME));
    }
}

我系统上的输出是这样:

2019-11-15T11:30:46.532+01:00

1
投票

下面的代码片段给出这样的结果

2019-11-15T16:03:53 + 05:30

SimpleDateFormat dateFormat2 = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssXXX");
System.out.println(dateFormat2.format(new Date()));

希望这是您想要的


1
投票

您的格式应为yyyy-MM-dd'T'hh:mm:ss.SSSXXX


0
投票

我认为您最好的选择是使用DateTimeFormatter。

您可以在这里找到文档:https://docs.oracle.com/javase/8/docs/api/java/time/format/DateTimeFormatter.html

© www.soinside.com 2019 - 2024. All rights reserved.