【问题标题】:How to get Time without Year,Month,Day from System.currentTimeMillis() [duplicate]如何从 System.currentTimeMillis() 获取没有年、月、日的时间 [重复]
【发布时间】:2019-12-12 10:05:34
【问题描述】:

如何在没有年、月、日的情况下从系统获取时间currentTimeMillis()。

【问题讨论】:

标签: java android time timestamp


【解决方案1】:

最好使用LocalTime

LocalTime.ofInstant(Instant.ofEpochMilli(System.currentTimeMillis()), ZoneId.systemDefault());

【讨论】:

  • 如果将秒乘以 1000,则不会得到毫秒。仍然会得到秒和一些零。
  • 而且,据我所知,问题是不是得到毫秒,而是(仅)时间(第二行是多余的)
  • 问题是关于获得Long 的时间。这是时间,很长。 @christian-h-kuhn:秒 * 1000 是毫秒,但我同意它不是很有用,因为它不准确。但由于最初的问题是关于getCurrentTimeMillis,这可能是有原因的。
  • 问题已编辑 - 没有 Longanymore - 为什么要删除???只是第二行是错误的
  • 只需添加...now() 作为附加选项(上述代码的快捷方式)
【解决方案2】:

这样的……

Date date = new Date(System.currentTimeMillis());
DateFormat formatter = new SimpleDateFormat("HH:mm:ss.SSS");
String dateFormatted = formatter.format(date);

【讨论】:

  • 这不是Long
  • 他把那部分删掉了……
  • 请不要教年轻人使用陈旧过时且臭名昭著的SimpleDateFormat类。至少不是第一选择。而且不是没有任何保留。今天我们在java.time, the modern Java date and time API, 和它的DateTimeFormatter 中有很多更好的东西。是的,您可以在 Android 上使用它。对于较旧的 Android,请参阅 How to use ThreeTenABP in Android Project
  • 也许年轻人正在支持 API 19,但它不支持 java.time,或者他们不想要像 ThreeTenABP 这样的其他依赖项?
猜你喜欢
  • 2013-07-26
  • 1970-01-01
  • 2018-05-16
  • 2012-03-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-04
相关资源
最近更新 更多