我想以这种格式打印当前日期-01-JUN-2008.55.27.577984000 AMUTC。尝试了SimpleDateformat中的许多格式,但没有一种有效。像这样打印的正确方法是什么?
SimpleDateFormat
您可以使用以下模式:
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.TimeZone;
public class TimeFormatting {
public static void main(String[] args) {
SimpleDateFormat formatter = new SimpleDateFormat("dd-MM-yy hh.mm.ss.SSS a Z");
formatter.setTimeZone(TimeZone.getTimeZone("UTC"));
String formatted = formatter.format(new Date(2015, 4, 4, 13, 7, 19)); //One example date
System.out.println(formatted);
}
}
这将给出输出04-05-1511.07.19.000AM 0000
其中0000
等于UTC
。
模式的解释dd-MM-yyhh.mm.ss.SSSZ
:
dd
=当天MM
=月份yy
=年份hh
=小时mm
=分钟ss
=第二个SSS
=毫秒。SimpleDateFormat
中不存在对纳秒的引用(请参阅此答案)。a
=显示AM/PMZ
=显示时区补充资料
请注意:SimpleDateFormat
已弃用。您应该使用DateTimeFor物质
。一大优势是您还可以拥有纳秒(n
)。
一个例子:
import java.time.LocalDateTime;
import java.time.ZonedDateTime;
import java.time.format.DateTimeFormatter;
import java.time.ZoneOffset;
public class TimeFormatting {
public static void main(String[] args) {
ZonedDateTime time = ZonedDateTime.now(ZoneOffset.UTC);
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd-MM-yy hh.mm.ss.n a 'UTC'").withZone(ZoneOffset.UTC);
String timeDate = time.format(formatter);
System.out.println(timeDate);
}
}
编辑:
如果你想让UTC
而不是0000
使用SimpleDateFormat
,你可以使用dd-MM-yyhh.mm.ss。SSS一个zzz代替。