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

在Java8中,如何以微秒为单位获得自纪元以来经过的long(时间),然后从相同的时间获得month和year

姬翰林
2023-03-14
long timeStampSeconds = ChronoUnit.MICROS.between(Instant.EPOCH, Instant.now());
try {
    epochLong = Long.parseLong(epoch);
} catch (RuntimeException e) {
    //Log exception
    return null;
}

Calendar cal = Calendar.getInstance();
cal.setTimeInMillis(epochLong);
String month = String.valueOf(cal.get(Calendar.MONTH));
String year = String.valueOf(cal.get(Calendar.YEAR));
//print month and year

共有1个答案

狄阳秋
2023-03-14

如果您正在使用Java-8中的java.time,那么您可以使用:

long timeStampSeconds = ChronoUnit.MICROS.between(Instant.EPOCH, Instant.now());

要返回,您可以将其转换为即时,然后将该即时转换为ZoneDateTime

Instant inst = Instant.EPOCH.plus(timeStampSeconds, TimeUnit.MICROSECONDS.toChronoUnit());
ZonedDateTime zdt = inst.atZone(ZoneId.of("Europe/Paris"));

然后你就可以得到月,年,日,小时,...

Month month = zdt.getMonth();
int year = zdt.getYear();
MICROS:       1574073141066090
ZoneDateTime: 2019-11-18T11:32:21.066090+01:00[Europe/Paris]
 类似资料:
  • 问题内容: 我需要类似的简单内容,但需要自1970年以来的秒数,而不是当前日期,小时,分钟和秒。 似乎没有提供该选项。有没有简单的方法? 问题答案: 这应该工作:

  • 问题内容: 首先,这是我在Java 1类中遇到的一个简单问题。这是一个静态时间,我已经将其设置为“今天”为8:49:12,因此我要弄清楚这代表了午夜之后的多秒,以及“午夜”之后的秒数。8小时49分钟12秒。现在是我的代码: 我的问题是,我如何获得的时候不知道 从 和 自 午夜。 因此,基本上输出是: 之后的空间是几秒钟。 谢谢,请解释原因,以及如何选择解决方法。我想学习:P 问题答案: 试试这个简

  • 问题内容: 你如何做相反,你把时间+日期,并获得秒数? 我有类似的字符串,并且我想获取从纪元到2009年7月9日之间的秒数。 我已经尝试过,但是我不知道如何正确使用它,或者它是否是正确的命令。 问题答案: 如果您是由于搜索引擎告诉您这是获取Unix时间戳的方法而到达此处的,请停止阅读此答案。向下滚动一个。 如果想扭转,那就想。 您可以使用将字符串转换为时间元组,该时间元组将返回一个时间元组,您可以

  • 问题内容: 我已经搜索了很多,但是找不到一个简单的方法来做到这一点: 以毫秒或微秒为单位。 我该如何实现? 问题答案: 该时间是由mysql监视应用程序计算的,而不是由mysql服务器完成的。这不是您可以通过编程(例如)进行检索的方法(这很好)。 您可以通过在应用程序中进行计时,在调用查询函数之前和之后占用系统时间来粗略地模拟它。希望与mysql部分相比,客户端的开销将最小。

  • 问题内容: 如果我有两个这样的日期时间: 如何以以下格式获取这些日期时间之间的差异: 我用 但是我只有时间。 问题答案: 试试这个- 询问: 输出:

  • 问题内容: 在Unix系统上,是否有办法在Java中获得具有微秒级精度的时间戳?类似于C的gettimeofday函数。 问题答案: 不,Java没有该功能。 它确实具有System.nanoTime(),但是仅提供了一些先前已知时间的偏移量。因此,虽然您不能从中获取绝对数字,但可以使用它来测量纳秒(或更高)的精度。 请注意,JavaDoc表示,尽管这提供了纳秒级的精度,但这并不意味着纳秒级的精度