import java.text.SimpleDateFormat;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.format.DateTimeFormatter;
import java.util.Date;
public class Test001 {
public static void main(String[] args) {
Date dt = new Date();
LocalDateTime localDateTime = LocalDateTime.now();
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SSS zzz").withZone(ZoneId.of("America/New_York"));
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS zzz");
System.out.println(formatter.format(localDateTime));
System.out.println(sdf.format(dt));
}
}
Выход
2016-04-19 11:25:34.917 ET
2016-04-19 11:25:34.637 EDT
Часовой пояс моего ноутбука - "Америка/Нью-Йорк" (т.е. восточное время США/Канада).
Интересно, как получить "EDT" вместо "ET", используя DateTimeFormatter
.
Интересно также, в целом: почему DateTimeFormatter
несовместим с SimpleDataFormat
с точки зрения шаблонов разбора/формата (как показано в этом примере, они несовместимы).