当前位置: 首页 > 知识库问答 >
问题:

在 Java 中将 unix 时间戳转换为日期 [重复]

长孙德惠
2023-03-14

如何在Java中将分钟数从Unix时间戳转换为日期和时间?例如,时间戳1372339860对应于 2013 年 6 月 27 日星期四 13:31:00 GMT

我想将< code>1372339860转换为< code > 2013-06-27 13:31:00 GMT 。

编辑:实际上我希望它根据美国时间GMT-4,所以它将是2013-06-27 09:31:00

共有3个答案

孙阳旭
2023-03-14

您需要将时间戳乘以1000,将其转换为毫秒:

java.util.Date dateTime=new java.util.Date((long)timeStamp*1000);
羊舌庆
2023-03-14

Java 8 引入了即时.ofEpochSecond 实用程序方法,用于从 Unix 时间戳创建即时,然后可以将其转换为区域日期时间并最终格式化,例如:

final DateTimeFormatter formatter = 
    DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");

final long unixTime = 1372339860;
final String formattedDtm = Instant.ofEpochSecond(unixTime)
        .atZone(ZoneId.of("GMT-4"))
        .format(formatter);

System.out.println(formattedDtm);   // => '2013-06-27 09:31:00'

我认为这可能对使用Java 8的人有用。

朱典
2023-03-14

您可以使用SimlpeDateFormat像这样格式化您的日期:

long unixSeconds = 1372339860;
// convert seconds to milliseconds
Date date = new java.util.Date(unixSeconds*1000L); 
// the format of your date
SimpleDateFormat sdf = new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss z"); 
// give a timezone reference for formatting (see comment at the bottom)
sdf.setTimeZone(java.util.TimeZone.getTimeZone("GMT-4")); 
String formattedDate = sdf.format(date);
System.out.println(formattedDate);

SimpleDateFormat采用的模式如果非常灵活,您可以检查javadocs中所有可用于根据您编写的给定特定日期的模式生成不同格式的变体。http://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html

    < li >因为< code>Date提供了一个< code>getTime()方法,该方法返回自EPOC以来的毫秒数,所以要求您为< code>SimpleDateFormat提供一个时区,以便根据您的时区正确地格式化日期,否则它将使用JVM的默认时区(如果配置得好,无论如何都是正确的)
 类似资料:
  • 问题内容: 如何在Java中将分钟从Unix时间戳转换为日期和时间。例如,时间戳1372339860对应于。 我想转换成。 编辑:其实我希望它是根据美国时间GMT-4,所以它将是。 问题答案: 你可以使用SimlpeDateFormat来格式化日期,如下所示: 如果使用的模式SimpleDateFormat非常灵活,则可以根据给定的特定模式,在javadocs中检入可用于产生不同格式的所有变体Da

  • 问题内容: 我正在尝试将19位Unix时间戳(例如,一个五分之五)转换为可读的日期/时间格式。我的时间戳以6个零结尾,这表明时间以纳秒为单位。 我遇到了一些例子,其中人们使用了我不需要的时区。另一个示例使用ofEpochSecond像这样: 但是我不确定是否需要使用EpochSecond。 下面的代码提供了我最新的实现方法: 但是我得到的输出是这样的: 它不以例如2019格式显示年份格式。 问题答

  • 我正在尝试将19位Unix时间戳(如(15亿分之一)转换为可读的日期/时间格式。我的时间戳以6个零结束,这表明时间以纳秒为单位。 我遇到过一些例子,人们使用了我不需要的时区。另一个例子是这样使用ofEpochSecond: 但是我不确定我是否需要使用ofEpoch秒钟。 下面的代码给出了我实现这一目标的最新方法: 但是我得到的输出是这样的: 它没有以例如2019格式显示年份格式。

  • 问题内容: 如何将以下格式转换为Unix时间戳? 我从数据库获得的格式似乎最后有。我尝试使用以下方法,但没有用: 问题答案: 试试这个查询 此查询

  • 如何将以下格式转换为unix时间戳? 我从DB获得的格式似乎末尾有。我尝试使用以下方法,但没有成功:

  • 问题内容: 我尝试将其转换为java.sql.Timestamp后插入,并使用以下代码段: 但是,这是给我的 有没有办法在没有毫秒的情况下获得输出? 问题答案: 您可以使用来减少毫秒数: 输出: