Java 将当前时间转换为此格式:";2017-04-25T17:12:42+;01:00“;
如何将当前时间转换为此格式:Java 将当前时间转换为此格式:";2017-04-25T17:12:42+;01:00“;,java,simpledateformat,Java,Simpledateformat,如何将当前时间转换为此格式: "2017-04-25T17:12:42+01:00" SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZZZ").format(new Date()) 我能得到的最接近的结果是: "2017-05-16T19:58:21+0100" 通过使用此格式: "2017-04-25T17:12:42+01:00" SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZZZ").format(new Da
"2017-04-25T17:12:42+01:00"
SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZZZ").format(new Date())
我能得到的最接近的结果是:
"2017-05-16T19:58:21+0100"
通过使用此格式:
"2017-04-25T17:12:42+01:00"
SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZZZ").format(new Date())
谢谢您可以使用“yyyy-MM-dd'HH:MM:ssXXX”作为模式而不是yyy-MM-dd'HH:MM:ssZZZ,请参见示例您可以使用“yyyy-MM-dd'HH:MM:ssXXX”作为模式而不是yyyyy-MM-dd'HH:MM:ssZZZ,参见示例您应该使用现代Java 8 Java.time包,更具体地说,是 从文档中: 公共静态最终日期时间格式ISO\u偏移量\u日期\u时间 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
您应该使用现代的Java8java.time包,更具体地说,是 从文档中: 公共静态最终日期时间格式ISO\u偏移量\u日期\u时间 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
SimpleDataFormat将为您做一件事
SimpleDateFormat formatter= new SimpleDateFormat("yyyy-MM-dd");
formatter.format(date);
SimpleDataFormat将为您做一件事
SimpleDateFormat formatter= new SimpleDateFormat("yyyy-MM-dd");
formatter.format(date);
ZZZ
是这样的RFC 822时区:-0800代码>
XXX
是这样的ISO 8601时区:-08:00代码>
如果想第二次使用MT而不想使用ISO偏移量日期时间,请使用XXX
,例如,要显示“01/15/2000T14:44:59-08:00”:
DateTimeFormatter.ofPattern("MM/dd/yyyy'T'HH:mm:ssXXX").format(...);
ZZZ
是这样的RFC 822时区:-0800代码>
XXX
是这样的ISO 8601时区:-08:00代码>
如果想第二次使用MT而不想使用ISO偏移量日期时间,请使用XXX
,例如,要显示“01/15/2000T14:44:59-08:00”:
DateTimeFormatter.ofPattern("MM/dd/yyyy'T'HH:mm:ssXXX").format(...);
对于此特定格式,您可以简单地使用,从Java-8开始提供:
OffsetDateTime.now().toString()代码>对于此特定格式,您可以简单地使用,从Java-8开始提供:
OffsetDateTime.now().toString()代码>(1)我不知道它如何解决结果中没有冒号的问题?(2) 现在,如果可以避免的话,我们不应该再使用SimpleDateFormat
。它已经过时好几年了。(1)我不知道它如何解决结果中没有冒号的问题?(2) 现在,如果可以避免的话,我们不应该再使用SimpleDateFormat
。它已经过时好几年了。更简单的是:OffsetDateTime.now().toString()
。那么你就不需要格式化程序了。(我仍然支持使用现代类。)更简单:OffsetDateTime.now().toString()
。那么你就不需要格式化程序了。(我仍然支持使用现代阶级。)