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

Tak*_*den 3 java time datetime date simpledateformat

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

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

因为我需要时间来自UTC,而不是来自我当前的位置.请你帮助我好吗?

Den*_*Ich 5

你可以使用这个:

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

或者查看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"));
Run Code Online (Sandbox Code Playgroud)