如何将当前时间转换为此格式:
"2017-04-25T17:12:42+01:00"
我能得到的最接近的是:
"2017-05-16T19:58:21+0100"
使用以下格式:
SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZZZ").format(new Date())
由于
答案 0 :(得分:2)
您应该使用现代Java 8 java.time包,更具体地说是DateTimeFormatter,ISO_OFFSET_DATE_TIME。
来自文档:
public static final DateTimeFormatter ISO_OFFSET_DATE_TIME
ISO日期时格式化程序,用于格式化或解析日期时间 抵消,例如' 2011-12-03T10:15:30 + 01:00'。
工作代码:
import java.time.ZonedDateTime;
import java.time.format.DateTimeFormatter;
public class Main
{
public static void main(String[] args)
{
ZonedDateTime date = ZonedDateTime.now();
String text = date.format(DateTimeFormatter.ISO_OFFSET_DATE_TIME);
System.out.println(text);
}
}
结果:
> run Main
2017-05-19T13:03:16.167+02:00
答案 1 :(得分:1)
对于这种特定格式,您只需使用java.time.OffsetDateTime(从Java-8开始可用):
OffsetDateTime.now().toString();
答案 2 :(得分:0)
ZZZ
是RFC 822时区,如下所示:-0800;
XXX
是ISO 8601时区,如下所示:-08:00;
如果您希望使用XXX
,请使用ISO_OFFSET_DATE_TIME
,例如,想要显示“01/15/2000T14:44:59-08:00”:
DateTimeFormatter.ofPattern("MM/dd/yyyy'T'HH:mm:ssXXX").format(...);
答案 3 :(得分:-1)
您可以使用" yyyy-MM-dd' HH:mm:ssXXX "作为模式而不是 yyyy-MM-dd' HH:mm:ssZZZ ,请参阅示例here
答案 4 :(得分:-1)
SimpleDateFormat会为你做点什么
SimpleDateFormat formatter= new SimpleDateFormat("yyyy-MM-dd");
formatter.format(date);