下面是我的简单计时器类,它在最简单的情况下工作正常.我使用下面的计时器类来测量某些代码执行时所花费的时间.
public static class StopTimer {
public static StopTimer getInstance() {
return new StopTimer();
}
private long m_end = -1;
private long m_interval = -1;
private final long m_start;
private StopTimer() {
m_start = m_interval = currentTime();
}
public long getDuration() {
long result = 0;
final long startTime = m_start;
final long endTime = isTimerRunning() ? currentTime() : m_end;
result = nanoToMilliseconds(endTime - startTime);
return result;
}
private long currentTime() {
return System.nanoTime();
}
private long nanoToMilliseconds(final long nanoseconds) …Run Code Online (Sandbox Code Playgroud) 我可以使用以下Ruby片段计算时间(以毫秒为单位):
$ irb
> require 'date'
=> true
> Date.new(2014,9,5).to_time
=> 2014-09-05 00:00:00 +0200
> Date.new(2014,9,5).to_time.to_i * 1000
=> 1409868000000
Run Code Online (Sandbox Code Playgroud)
1409868000000是期望的结果.
如何用Java获得相同的结果?我将时区设置为CEST,因为它似乎与Ruby一起工作.所以我尝试了这个:
GregorianCalendar calendar = new GregorianCalendar(TimeZone.getTimeZone("CEST"));
calendar.set(2014, 9, 5);
System.out.println("" + calendar.getTimeInMillis());
// Returns: 1412498241422
Run Code Online (Sandbox Code Playgroud) 我需要parse一个datetime包含毫秒来匹配包含此日期时间的字段中的最大值。
例如:
#standardSQL
SELECT PARSE_DATETIME('%Y-%m-%d %H:%M:%S.%u','2017-08-18 16:04:40.890')
Run Code Online (Sandbox Code Playgroud)
有什么建议?提前致谢。
更新:突然转换为毫秒MAX()。
#standardSQL
WITH Input AS (
SELECT date
FROM UNNEST([
DATETIME '2017-08-18 16:04:40.890',
DATETIME '2017-07-27 11:09:10.347',
DATETIME '2017-08-22 13:17:34.727',
DATETIME '2017-08-22 13:17:34.737']) AS date
)
SELECT
MAX(CAST(date AS DATETIME))
FROM Input;
Run Code Online (Sandbox Code Playgroud) datetime milliseconds datetime-parsing google-bigquery bigquery-standard-sql
为什么是:
import spark.implicits._
val content = Seq(("2019", "09", "11","17","16","54","762000000")).toDF("year", "month", "day", "hour", "minute", "second", "nano")
content.printSchema
content.show
content.withColumn("event_time_utc", to_timestamp(concat('year, 'month, 'day, 'hour, 'minute, 'second), "yyyyMMddHHmmss"))
.withColumn("event_time_utc_millis", to_timestamp(concat('year, 'month, 'day, 'hour, 'minute, 'second, substring('nano, 0, 3)), "yyyyMMddHHmmssSSS"))
.select('year, 'month, 'day, 'hour, 'minute, 'second, 'nano,substring('nano, 0, 3), 'event_time_utc, 'event_time_utc_millis)
.show
Run Code Online (Sandbox Code Playgroud)
缺少毫秒?
+----+-----+---+----+------+------+---------+---------------------+-------------------+---------------------+
|year|month|day|hour|minute|second| nano|substring(nano, 0, 3)| event_time_utc|event_time_utc_millis|
+----+-----+---+----+------+------+---------+---------------------+-------------------+---------------------+
|2019| 09| 11| 17| 16| 54|762000000| 762|2019-09-11 17:16:54| 2019-09-11 17:16:54|
+----+-----+---+----+------+------+---------+---------------------+-------------------+---------------------+
Run Code Online (Sandbox Code Playgroud)
对于格式字符串:如果我没记错的话yyyyMMddHHmmssSSS,它应该包括毫秒SSS。
timestamp milliseconds format-string apache-spark apache-spark-sql
我正在阅读此页面,其中说 41 位用于使用自定义纪元表示 41 年。
我无法理解以毫秒、位和年为单位的时间之间的关系。任何人都可以帮忙吗?
例如。在 Java 中,System.currentTimeMillis()返回 a long,即64 bits。这是否意味着如果我必须每毫秒生成 1 个,它可以代表 64 年的唯一值?
在上述情况下,41年后会发生什么?如果他们保持相同的方法,他们是否必须增加用于指定的位?
编写一个函数来计算在javaScript中用一根手指键入数字所需的毫秒数
我试图解决这个问题,但我不知道如何解决这个问题。
我想将时间 (hh:mm:ss) 转换为毫秒。那我该怎么办呢?
例如:时间是:00:00:11
注意:我需要 PHP 代码。
我想计算每个方法的响应时间.这可以用System.currentTimeInMillis完成,但我听说它在linux上很慢.
milliseconds ×8
java ×4
datetime ×2
time ×2
timestamp ×2
apache-spark ×1
calculation ×1
date ×1
epoch ×1
javascript ×1
nanotime ×1
performance ×1
php ×1
ruby ×1
timer ×1