如何获得时间戳的例子:2016-08-29T09:15:17Z?

时间:2017-04-06 08:52:43

标签: java datetime

我试图获取日期格式2016-08-29T09:15:17Z,但最后无法获得结尾Z

我还检查了官方网站上的日期时间文档,但找不到类似的模式。到目前为止,我创建的日期格式如下:

  

YYYY-MM-DD' T' HH:MM:ss.SSSZ

到目前为止,我编写的代码是:

public static void main(String args[]) throws ParseException{
        Date nDate=new Date();
        //SimpleDateFormat format=new SimpleDateFormat("ddMMYYYYHHMMSS");
        String date=new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ").format(nDate);
        System.out.println(date);
}

4 个答案:

答案 0 :(得分:0)

T只是将日期与时间分开的文字,Z表示"零小时偏移"也被称为"祖鲁时间" (世界标准时间)。如果你的字符串总是有一个" Z"你可以使用 -

TimeZone timeZone = TimeZone.getTimeZone("UTC"); // optional
DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"); // Quoted "Z" to indicate UTC, no timezone offset
dateFormat.setTimeZone(timeZone); // optional
String date = dateFormat .format(new Date()); // date will have the required format
System.out.println(date);

答案 1 :(得分:0)

Z是一个常量值,如字符串中的T,因此您必须在其周围加上单引号:

String date=new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'").format(nDate);

如果您使用Z而没有单引号,则DateFormat需要时区值

答案 2 :(得分:0)

Oracle文档说明[0,2]z都用于时区。 因此,如果您不想要Z的特殊含义,那么您需要编写如下:

Z

答案 3 :(得分:0)

我正在使用从JDK 8开始引入的新java.time API添加另一种方法。

      LocalDateTime nDate=LocalDateTime.now();
      DateTimeFormatter formatter = new DateTimeFormatterBuilder()
              .append(DateTimeFormatter.ISO_LOCAL_DATE)
              .appendLiteral('T')
              .append(DateTimeFormatter.ISO_LOCAL_TIME)
              .appendLiteral('Z')                              
              .toFormatter();
       String date = formatter.format(nDate);
       System.out.println(date);