如何将时区添加到时间戳



我有一个时间戳打印日期和时间(24小时格式(

String timeStamp = new SimpleDateFormat("ddMMMyyyyHHmm").format(Calendar.getInstance().getTime());

当我打印时间戳时,输出为

27Feb20180051

但是我想要这样的东西

27Feb20180051EST

任何想法如何进行?

尝试以下代码,

SimpleDateFormat dateFormatter = new SimpleDateFormat("ddMMMyyyyHHmmz");
String timeStamp = dateFormatter.format(Calendar.getInstance().getTime());

您可以根据需要使用模式格式化日期。以下链接中包含更多信息。https://docs.oracle.com/javase/7/docs/api/java/java/text/simpledateformat.html

尝试以下代码

String timeStamp = new SimpleDateFormat("ddMMMyyyyHHmmz").format(Calendar.getInstance().getTime());
    String timeStamp = ZonedDateTime.now(ZoneId.of("America/Panama"))
            .format(DateTimeFormatter.ofPattern("ddMMMuuuuHHmmzzz", Locale.ENGLISH));
    System.out.println(timeStamp);

这个刚刚打印

27Feb20180408Est

消息:

  1. 指定显式时区。如果不是美国/巴拿马,请替换您所需的时区。您可以指定ZoneId.systemDefault()使用JVM的时区设置,只有请注意,程序的其他部分或在同一JVM中运行的其他程序可能会更改。
  2. 指定明确的语言环境。我以英语为" 2月",并建议使用Locale.ENGLISH,您的偏好可能会有所不同。同样,不同地区的时区缩写可能不同。
  3. 使用Java.Time,现代Java日期和时间API。CalendarDateSimpleDateFormat长期过时,尤其是臭名昭著的麻烦,因此我建议您避免使用它们。现代API可以使用得更好。
  4. 如果可以的话,请避免三个字母时区缩写。尽管Est May(!(不被理解为北美东部标准时间(UTC-5(以外的其他东西,但许多(可能大多数缩写(都是模棱两可的,因此很容易被误解在另一端。推荐格式是ISO 8601,例如2018-02-27T04:08-05:00。这是明确的,由于它是标准的,它将被广泛理解。您可以在Java中轻松生成它:OffsetDateTime.now(ZoneId.of("America/Panama")).toString()

链接: Oracle教程:日期时间说明如何使用java.time

相关内容

  • 没有找到相关文章

最新更新