-
2021-02-12 16:16:35
Java 9和更高版本:捕获当前时刻时,分辨率高达纳秒。那是9位数的小数。
Instant.now()
2017-12-23T12:34:56.123456789Z
要限制为微秒,请截断。
Instant // Represent a moment in UTC.
.now() // Capture the current moment. Returns a `Instant` object.
.truncatedTo( // Lop off the finer part of this moment.
ChronoUnit.MICROS // Granularity to which we are truncating.
) // Returns another `Instant` object rather than changing the original, per the immutable objects pattern.
2017-12-23T12:34:56.123456Z
在实践中,您将看到用.now现代传统计算机硬件时钟捕获的仅几微秒,而纳秒精度不高。
细节
从Java 8开始,其他答案有些过时了。
java.time
Java 8和更高版本附带了java.time框架。这些新类取代了Java最早版本(例如java.util.Date/.Calendar和java.text.SimpleDateFormat)附带的有缺陷的麻烦的日期时间类。该框架由受Joda-Time启发的JSR 310定义,并由ThreeTen-Extra项目扩展。
java.time中的类解析为纳秒,比旧的日期时间类和Joda-Time所使用的毫秒要细得多。并且比问题中要求的微秒更好。
在此处输入图片说明
Clock 实作
尽管java.time类支持表示以纳秒为单位的值的数据,但这些类尚未生成以纳秒为单位的值。这些now()方法使用与旧的日期时间类相同的旧时钟实现System.currentTimeMillis()。我们Clock在java.time中具有新接口,但是该接口的实现是相同的旧毫秒时钟。
因此,您可以设置结果的文本表示的格式,ZonedDateTime.now( ZoneId.of( "America/Montreal" ) )以查看小数秒的9位数字,但只有前三位具有以下数字:
2017-12-23T12:34:56.789000000Z
Java 9中的新时钟
Java 9的OpenJDK和Oracle实现具有Clock粒度更细的新默认实现,最高可达java.time类的纳秒级能力。
请参见OpenJDK问题,提高java.time.Clock.systemUTC()的实现精度。该问题已成功实施。
2017-12-23T12:34:56.123456789Z
在装有macOS Sierra的MacBook Pro(15英寸,2013年末,视网膜)上,我得到的当前时刻以微秒为单位(最多六位数的十进制分数)。
2017-12-23T12:34:56.123456Z
硬件时钟
请记住,即使采用新的更精细的Clock实现,您的结果也可能因计算机而异。Java依靠底层计算机硬件的时钟来了解当前时刻。
硬件时钟的分辨率差异很大。例如,如果特定计算机的硬件时钟仅支持微秒粒度,则任何生成的日期时间值将只有六位数的分数秒,最后三位数为零。
硬件时钟的精度差异很大。仅仅因为时钟生成的值带有几分之一秒的小数位,所以这些数字可能不准确,仅是近似值,会从原子钟读取的实际时间中漂移。换句话说,仅仅因为您看到小数点右边的一堆数字并不意味着您可以相信两次读数之间的经过时间是正确的。
更多相关内容 -
现在有任何新的方法可以在Java中以微秒的...
2021-02-12 09:51:21TL;博士Instant.now()2018-03-09T21:03:33.831515Z使用Java 9及更高版本,您可以使用...请注意小数秒的6位数,即微秒.java.timeJava 8及更高版本中内置的java.time框架具有表示日期时间值的类,分辨率为nanosecon...TL;博士
Instant.now()
2018-03-09T21:03:33.831515Z
使用Java 9及更高版本,您可以使用microseconds分辨率捕获当前时刻.
上面的示例是针对macOS Sierra的Oracle Java 9.0.4.请注意小数秒的6位数,即微秒.
java.time
Java 8及更高版本中内置的java.time框架具有表示日期时间值的类,分辨率为nanoseconds,9位数小数秒.
Java 9
Java 9有一个fresh implementation的Clock,分辨率高达纳秒级.实际值取决于任何特定计算机的基础硬件时钟的限制.
避免使用较旧的日期时间类.与早期版本的Java捆绑在一起的java.util.Date/.Calendar等类只有毫秒级的分辨率.对于Joda-Time也是如此.两者都被java.time类取代.
Java 8
Java 8实现Clock接口,分辨率仅为millisecond(小数秒的3位数).因此,虽然java.time类能够承载纳秒,但它无法以纳秒捕获当前时间.
本机代码
也许您可以编写或查找Clock的实现,该实现调用主机操作系统中的本机库以获得更准确的时间.
数据库
如果您恰好正在使用数据库,您可以随时询问它.从JDBC 4.2及更高版本开始,您可以直接与数据库交换java.time对象.
Instant instant = myPreparedStatement.getObject( … , Instant.class ) ;
在JDBC 4.2之前,您可以查看带有纳秒分辨率的麻烦的旧java.sql.Timestamp.例如,Postgres提供microsecond分辨率(假设主计算机时钟支持该分辨率),小数秒的6位数.您可以使用添加到旧类的新方法将java.sql.Timestamp转换为Instant和ZonedDateTime.
关于java.time
要了解更多信息,请参阅Oracle Tutorial.并搜索Stack Overflow以获取许多示例和说明.规格是JSR 310.
您可以直接与数据库交换java.time对象.使用符合JDBC 4.2或更高版本的JDBC driver.不需要字符串,不需要java.sql.*类.
从哪里获取java.time类?
>内置.
>部分标准Java API,带有捆绑实现.
> Java 9增加了一些小功能和修复.
>大部分java.time功能都被反向移植到Java 6& 07年7月7日.
>更新版本的Android捆绑java.time类的实现.
>对于早期的Android(< 26),ThreeTenABP项目采用ThreeTen-Backport(如上所述).见How to use ThreeTenABP….
ThreeTen-Extra项目使用其他类扩展了java.time.该项目是未来可能添加到java.time的试验场.您可以在这里找到一些有用的类,例如Interval,YearWeek,YearQuarter和more.
-
java获取当前时间微秒
2021-04-12 10:06:32()为获取当前系统时间,也可使用当前时间戳 获取时间戳三种方法执行效率比较: import java.util.Calendar; import java.util.Date; public class TimeTest { ......java 获得系统时间 转换成字符串 关键字: java 有...()为获取当前系统时间,也可使用当前时间戳 获取时间戳三种方法执行效率比较: import java.util.Calendar; import java.util.Date; public class TimeTest { ......
java 获得系统时间 转换成字符串 关键字: java 有时候经常用到 JAVA 时间转换 如 字符串转换成时间,时间转换成 字符串 1.long 字符串转换成 yyyy-MM-dd HH:......
JAVA中获得本地系统时间的方法_电脑基础知识_IT/计算机_专业资料。import java.util.*; public class D { public static void main(String []abc) { int y,......
java 获得的系统时间与操作系统的时间不 一致...
1.1. 创建 java.util.DateJava 统计从 1970 年 1 月 1 日起的毫秒的数量表示日期。 也就是说, 例如, 1970 年 1 月 2 日, 是在 1 月 1 日后的 86......
VC++实现微秒级的精确定时器_计算机软件及应用_IT/计算机_专业资料。VC++实现微秒级的精确定时器 在工业生产控制系统中,有许多需要定时完成的操作,如定时显示当前......
类的静态方法 public static long currentTimeMillis()获取系统当前时间,这个时间是从 1970 年 1 月 1 日 0 点到目前时刻所走过的毫秒数(这是一个不小的数)......
疯狂软件教育-Java 中获取年月日 本文由广州疯狂软件 java 培训分享: Java 语言提供了许多处理日期的工具。 其中一些工具在其他语言中使用起来 更困难一些。 尽管......
1.java 计算时间依靠 1970 年 1 月 1 日开始的毫秒数. 2.date 类的构造函数 date()返回代表当前创建的时刻的对象。date 的方法 gettime()返回一个 long ......
Date 日期 演讲人:马赫 Date 类(一)位于java.util包中 类 Date 表示特定的瞬间,精确到毫秒。在 JDK 1.1 之前,类 Date 有两个其他的函数。 它允许把日期......
---二.clock()函数,用 clock()函数,得到系统启动以后的毫秒级时间,然后除以 CLOCKS_PER_SEC, 就可以换成“秒”,标准 c 函数。 clock_t clock ( void ); ......
Java取日期的所有时间点可根据年月日_计算机软件及应用_IT/计算机_专业资料...
1. java 计算时间依靠 1970 年 1 月 1 日开始的毫秒数. 2. date 类的构造函数 date()返回代表当前创建的时刻的对象。date 的方法 gettime()返回一个 long......
1.java计算时间依靠1970年 1 月1日开始的毫秒数. 2. date类的构造函数 date()返回代表当前创建的时刻的对象。date 的方法gettime() 返回一个 long 值在数值......
1. Java 计算时间依靠 1970 年 1 月 1 日开始的毫秒数. 2. Date 类的构造函数 Date(返回代表当前创建的时刻的对象。Date 的方法 getTime(返回一个 long ......
= Calendar.getInstance(; int day=cal.getActualMaximum(Calendar.DAY_OF_MONTH; System.out.println(day; java.util.Date 类 Date 表示特定的瞬间,精确到毫秒。...
java 获取当前年份 月份 日期_计算机软件及应用_IT/计算机_专业资料。java 获取当前年份 月份 日期 import java.util.Calendar; public class Main { public static......
C++中于获取当前时间的函数_社会民生_生活休闲。asctime(将时间和 日期...
(); // 获取当前的时间 // 利用当前的时间戳(毫秒) + 18天的毫秒数 long after = current + LISECONDS.convert(18, TimeUnit.DAYS); // 将......
Visual C++实现微秒级精度定时器 实现微秒级精度定时器在工产控制系统中,有许多需要定时完成的操作,如:定时显示当前时间,定 时刷新屏幕上的进度条, 上位机定时向......
-
JAVA中如何获取毫秒和微秒数
2021-03-24 01:28:46优质回答 回答者:雪学生一、获取毫秒数的代码:(1)System....二、获取微秒数的代码:微秒使用System.nanoTime()方法:如果Java程序需要高精度的计时,如1毫秒或者更小,使用System.nanoTime()方法,可以...优质回答 回答者:雪学生
一、获取毫秒数的代码:
(1)System.currentTimeMillis() 这种方式速度最快。
(2)Calendar.getInstance().getTimeInMillis() 这种方式速度最慢。
二、获取微秒数的代码:
微秒使用System.nanoTime()方法:如果Java程序需要高精度的计时,如1毫秒或者更小,使用System.nanoTime()方法,可以满足需求。
扩展资料:
获取微秒函数System.nanoTime() 的隐患:
System.currentTimeMillis() 起始时间是基于 1970.1.1 0:00:00 这个确定的时间的,而System.nanoTime()是基于cpu核心的时钟周期来计时,它的开始时间是不确定的。
但是在多核处理器上,由于每个核心的开始时间不确定,那么
“long start = System.nanoTime();String ip = Utilities.getIpByUrl(url);long cost = System.nanoTime() - start;”
这段代码有可能会运行在两个不同的cpu核心上,从而导致得到的结果完全不符逻辑。
-----------------------------------------------------------------
回答者:忘了回家的路
public static void main(String[] args) {
// TODO Auto-generated method stub
Date dt= new Date();
Long time= dt.getTime();//这就是距离1970年1月1日0点0分0秒的毫秒数
System.out.println(System.currentTimeMillis());//与上面的相同
}
至于java中取微秒数,似乎不准确。精确不到微秒级别。有时还与操作系统有关。
-----------------------------------------------------------------
回答者:那一个胖子
public class TestTime {
public static void main(String[] args){
Date d = new Date();
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SS");//其中yyyy-MM-dd是你要表示的格式
// 可以任意组合,不限个数和次序;具体表示为:MM-month,dd-day,yyyy-year;kk-hour,mm-minute,ss-second;
String str=sdf.format(d);
System.out.println("The date is : "+ str);
}
}
-----------------------------------------------------------------
回答者:刘志国
很简单的什么import都不用
long time = System.currentTimeMillis();
这个long的time就是你要的时间了 想怎么用随便你
TAGS: 毫秒单位
-
在Java中以微秒为单位解析时间
2021-03-09 17:14:26我在解析2013-01-09 09:15:03.000000格式的Java时间字符串时遇到问题。 在我的数据中,最后三个数字始终为0(表示输入字符串仅具有毫秒精度),因此我将此格式传递给SimpleDateFormat:formatter = new ... -
Java日期解析具有微秒或纳秒精度
2021-03-01 07:54:25java.time SimpleDateFormat和相关的java.util.Date/.Calendar类现在已经过时了Java 8(Tutorial)中的新java.time软件包. 新的java.time类支持nanosecond分辨率.该支持包括解析和生成九位数的小数秒.例如,当您使用... -
java获取当前时间(精确到微秒)
2021-10-20 10:37:12如果需要获取精确到微秒的时间可以使用下面方法: public static String getNowTime(){ LocalDateTime localDateTime=LocalDateTime.now(); return localDateTime.getYear()+"-"+localDateTime.getMonthValue()+... -
如何在Java中以微秒精度测量时间?
2021-03-09 22:25:36我只需要函数执行前后的微秒,就可以知道需要多长时间。我正在使用Windows XP。基本上,我有这段代码,例如,在Java链表中进行了1百万个到1000万个插入。问题是我无法正确测量精度;有时,花费较少的时间将所有内容... -
java 获取当前微秒时间
2018-03-25 22:53:35* @return返回微秒 */ public static Long getmicTime() { Long cutime = System.currentTimeMillis() * 1000; // 微秒 Long nanoTime = System.nanoTime(); // 纳秒 return cutime + (nanoTime - ... -
java格式化微秒的String为Date时间戳
2019-07-18 09:45:35有几位小数,就相应的写几个大写S,可以获取精确的时间戳 -
在Java中解析微秒的时间
2021-07-16 19:56:53I am having problems parsing time strings in Java that are in the format of 2013-01-09 09:15:03.000000. In my data, the last three digits are always 0 (meaning the input strings have only millisecond ... -
Java计算时间差(两个时间相减)
2021-03-16 11:31:53在Android开发或者Java学习中,经常要求两个时间差比如说:现在是 :2004-03-26 13:31:40过去是:2004-01-02 11:30:24我现在要获得两个日期差,差的形式为:XX天XX小时XX分XX秒这前后时间可能是机器生成的,也... -
java时间精确到微秒
2021-04-17 10:51:31从传输延迟时间的量级来看,局域网交换机为几十微秒,网桥为几百微秒,而路由器为几千微秒。最新......精度可达微秒数量门 引 言 , 级 ?! 一 , ) , 是 公认 的最 有发展 前途 的局域网 时钟 同 步协 议 网络中主时钟... -
Java日期时间API系列35-----Jdk8中java.time包中的新的日期时间API类应用,微秒和纳秒等更精确的时间格式化...
2021-03-01 08:16:58通过Java日期时间API系列1-----Jdk7及以前的日期时间类中得知,Java8以前除了java.sql.Timestamp扩充纳秒,其他类最大...毫秒,微秒和纳秒都是通过这个值计算得到的。1.Timestamp格式化中的纳秒。java.sql.Timestam... -
java中的当前时间(以微秒为单位)
2021-07-16 22:55:33On a Unix system, is there a way to get a timestamp with microsecond level accuracy in Java? Something like C's gettimeofday function.解决方案No, Java doesn't have that ability.It does have System.... -
时钟周期-秒、毫秒、微秒、纳秒之间的换算
2021-04-22 21:02:35s(秒)、ms(毫秒)、μs(微秒)、ns(纳秒)其中:1s=1000ms,1 ms=1000μs,1μs=1000ns时 钟周期是一个时间的量,人们规定10纳秒(ns)为一个时钟周期。时钟周期表示了SDRAM所能运行的最高频率。更小的时钟周期就意味着更... -
java 日期格式 毫秒
2021-03-05 20:09:28从步入屌丝界的IT生活见到这两个单词到现在我还是不知道这两个单词的真正含义,今天有 ...Java面向对象:接口Java面向对象之接口 什么是接口:接口是一种规范和标准,他们可以约束类的行为,是一些方法特征的集合 语法: ... -
Java 8:如何使用毫秒,微秒或纳秒创建DateTimeFormatter?
2021-02-28 14:57:47// java.time.format.DateTimeParseException: Text '20161201-10:30:45.1234Z' could not be parsed // multiple values (throws exception) System.out.println(parse("20161201-10:30:45.123000.123Z", ... -
java日期格式
2022-01-06 10:53:571、java指定日期格式(精确到微秒) yyyy-MM-dd HH:mm:ss.SSSSSS y-年,M-月,d-日,H-小时(24小时制),m-分钟,s-秒,S-毫秒 java只能取到毫秒,微秒级别全是零,但是可以取出到微秒的这种格式化时间戳形式: ... -
(JAVA):常见的时间方法、日期方法、随机数方法,基础性的知识,必须要知晓。
2022-04-10 12:33:43▷ YEAR:指示年 ▷ MONTH:指示月 ▷ DAY_OF_MONTH:指示一个月中的某天 ▷ DAY_OF_WEEK:指示一个星期中的某天 (3)☠DateFormat类: 此类是格式化日期时间的类,它在Java.text 包下,是一个抽象类,提供了... -
将time.Duration类型的微秒值转换为毫秒
2021-07-17 02:14:41I am using go-ping ( https://github.com/sparrc/go-ping )library of golang for unprivileged ICMP ping.timeout := time.Second*1000interval := time.Secondcount := 5host := p.ipAddrpinger, cmdErr := ping.... -
Java中的随机数
2021-02-28 18:21:29这篇文章主要介绍了Java中的随机数,需要的朋友可以参考下在Java中我们可以使用java.util.Random类来产生一个随机数发生。它有两个构造函数,分别是Random()和Random(longseed)。Random()是用当前时间即System.... -
Java程序运行纳秒级差值计算
2022-02-06 19:55:521纳秒 =0.001微秒 1纳秒=0.000001毫秒 1纳秒=0.00000 0001秒 其实翻过来看更清晰,咱们看毫秒啊 100000纳秒=1毫秒 java的System.currentTimeMillis()和System.nanoTime()区别: java中System.nanoTime()返回... -
java计算一天的微秒数
2013-10-18 10:28:41一天的微秒数计算公式:24*60*60*1000*1000 但是,如果使用java计算的话,初始我是这么写的: public class Test1 { public static void main(String[] args){ long a = 24*60*60*1000*1000; System.out.... -
JAVA中怎么获取毫秒和微秒数
2021-02-12 09:02:381.long java.util.Date.getTime()Returns the number of milliseconds since January 1, 1970, 00:00:00 GMT represented by this Date object.如上JDK文档说,在Date对象上用getTime()获得自1970年1月1日以来的毫秒... -
在Java中以毫秒显示整个日期时间
2021-03-18 10:25:38导入以下程序包以使用Java中的Calendar类,importjava.util.Calendar;要显示一整天的时间,首先创建一个Calendar对象。Calendarcal=Calendar.getInstance();使用下面显示的字段显示整个日期时间-//DATECalendar.... -
关于simpledateformat:具有微秒或纳秒精度的Java日期解析
2021-03-08 06:52:07根据SimpleDateFormat类文档,Java在其日期模式中不支持毫秒以上的时间粒度。因此,日期字符串2015-05-09 00:10:23.999750900 //最后9位数字表示纳秒通过模式解析时yyyy-MM-dd HH:mm:ss.SSSSSSSSS // 9个'S'符号...