如何转换2016-02-14T15:50:39Z格式的当前日期和时间?

时间:2016-02-17 09:52:54

标签: java

我想在2016-02-14T15:50:39Z格式中转换系统日期和时间。如何实现使用java?

3 个答案:

答案 0 :(得分:2)

TL;博士

Instant.now()
       .toString()
  

2018-01-23T01:23:45.678901Z

详细

其他答案使用旧的过时类。

ISO 8601

您想要的格式符合ISO 8601标准。

最后的Z代表Zulu,表示UTC

java.time

在Java 8及更高版本中,使用内置的java.time框架。

在解析/生成日期时间值的文本表示时,java.time类默认使用ISO 8601格式。

即时

Instant是UTC时间线上的一个时刻。它的now方法得到当前时刻。从Java 8 Update 74开始,now方法以millisecond分辨率获得当前时刻,但未来版本可能达到Instant的完整nanosecond分辨率。

Instant::toString方法根据需要生成一个String,根据小数秒的需要使用数字组(0,3,6或9)。

String output = Instant.now().toString();  // Example: 2016-02-14T15:50:39.123Z 

截断小数秒

如果不关心一小段时间,如问题示例中所示,请拨打with进行截断,并传递ChronoField.NANO_OF_SECOND enum

String output = Instant.now().with( ChronoField.NANO_OF_SECOND , 0 ).toString();  // Example: 2016-02-14T15:50:39Z (no '.123' at end)

更简单的是,调用truncatedTo方法,传递ChronoUnit.SECONDS enum

String output = Instant.now().truncatedTo( ChronoUnit.SECONDS ).toString();

如果要截断整个分钟而不是整个分钟,请参阅this other Question

答案 1 :(得分:1)

试试这段代码:

import java.text.SimpleDateFormat;
import java.util.Date;

public class Main {

    public static void main(String[] args)
    {
        Date dt=new Date();
        SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ");
        String formattedDate = formatter.format(dt);
        System.out.println(formattedDate);
    }
}

您可以尝试其他几种日期格式here

答案 2 :(得分:0)

下面使用简单的日期格式示例:

Date curDate = new Date();

    SimpleDateFormat format = new SimpleDateFormat("yyyy/MM/dd");

    String DateToStr = format.format(curDate);
    System.out.println(DateToStr);

    format = new SimpleDateFormat("dd-M-yyyy hh:mm:ss");
    DateToStr = format.format(curDate);
    System.out.println(DateToStr);

    format = new SimpleDateFormat("dd MMMM yyyy zzzz", Locale.ENGLISH);
    DateToStr = format.format(curDate);
    System.out.println(DateToStr);

    format = new SimpleDateFormat("E, dd MMM yyyy HH:mm:ss z");
    DateToStr = format.format(curDate);
    System.out.println(DateToStr);

    try {
        Date strToDate = format.parse(DateToStr);
        System.out.println(strToDate);
    } catch (ParseException e) {
        e.printStackTrace();
    }
}