以给定格式将UTC中的SimpleDateFormat转换为String

时间:2016-10-18 11:07:40

标签: java date datetime time simpledateformat

我需要在这一行添加一些内容:

String date = new SimpleDateFormat("dd-MMM-yy hh.mm.ss").format(new Date()).toUpperCase();

因为我需要时间来自UTC,而不是来自我当前的位置。你能帮我吗?

1 个答案:

答案 0 :(得分:5)

你可以使用它:

final SimpleDateFormat sdf = new SimpleDateFormat("dd-MMM-yy hh.mm.ss");
sdf.setTimeZone(TimeZone.getTimeZone("UTC"));
final String utcTime = sdf.format(new Date());

或者查看java8 LocalDateTime和DateTimeFormat API。 java.util.Date,特别是SimpleDateFormat有点过时,如果可能的话,我建议不要使用SimpleDateFormat,因为它不是线程保存,在使用流或其他东西时可能会咬你。

Java 8替代方案:

String now = ZonedDateTime.now(ZoneOffset.UTC).format(DateTimeFormatter.ofPattern("dd-MMM-yy HH.mm.ss"));