有没有办法将日期格式的偏移参数与冒号一起使用?
Is there a way to using date format's offset parameter with colon?
我正在使用 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
有没有办法添加像这里的第二个例子那样打印出来的时区?
我认为最好的选择是使用 DateTimeFormatter
。
您可以在此处找到文档:
https://docs.oracle.com/javase/8/docs/api/java/time/format/DateTimeFormatter.html
你所说的不是时区(如 UTC),而是一个偏移量(如 +01:00)。
您可以使用现代日期时间 API java.time
,它有一个内置的 DateTimeFormatter.ISO_OFFSET_DATE_TIME
,可以根据需要格式化偏移量:
import java.time.OffsetDateTime;
import java.time.format.DateTimeFormatter;
public class WhosebugDemo {
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
下面的这个片段给出了这样的结果
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()));
希望这就是您要找的
你的格式应该是yyyy-MM-dd'T'hh:mm:ss.SSSXXX
我正在使用 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
有没有办法添加像这里的第二个例子那样打印出来的时区?
我认为最好的选择是使用 DateTimeFormatter
。
您可以在此处找到文档: https://docs.oracle.com/javase/8/docs/api/java/time/format/DateTimeFormatter.html
你所说的不是时区(如 UTC),而是一个偏移量(如 +01:00)。
您可以使用现代日期时间 API java.time
,它有一个内置的 DateTimeFormatter.ISO_OFFSET_DATE_TIME
,可以根据需要格式化偏移量:
import java.time.OffsetDateTime;
import java.time.format.DateTimeFormatter;
public class WhosebugDemo {
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
下面的这个片段给出了这样的结果
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()));
希望这就是您要找的
你的格式应该是yyyy-MM-dd'T'hh:mm:ss.SSSXXX