Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/310.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将当前时间转换为此格式:";2017-04-25T17:12:42+;01:00“;_Java_Simpledateformat - Fatal编程技术网

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()
。那么你就不需要格式化程序了。(我仍然支持使用现代阶级。)