【问题标题】:best way to get timestamp in long in android? [duplicate]在android中获取时间戳的最佳方法? [复制]
【发布时间】:2020-04-30 19:58:33
【问题描述】:

我想详细了解如何在 android 中获取它以及遵循哪种方法,请多解释一下以更好地理解?

因为我们有一些选项可以在 android 中获得它并找出最好的。

如果有人用代码解释如何得到它,那将会很有帮助。

提前感谢您的帮助

【问题讨论】:

标签: android calendar timestamp timestamp-with-timezone


【解决方案1】:

你好,希望对你有帮助

//Getting the current date
      Date date = new Date();
      //This method returns the time in millis
      long timeMilli = date.getTime();
      System.out.println("Time in milliseconds using Date class: " + timeMilli);

      //creating Calendar instance
      Calendar calendar = Calendar.getInstance();
      //Returns current time in millis
      long timeMilli2 = calendar.getTimeInMillis();
      System.out.println("Time in milliseconds using Calendar: " + timeMilli2);

      //Java 8 - toEpochMilli() method of ZonedDateTime
      System.out.println("Getting time in milliseconds in Java 8: " + 
      ZonedDateTime.now().toInstant().toEpochMilli());

这些选项的输出将是

Time in milliseconds using Date class: 1508484583259

Time in milliseconds using Calendar: 1508484583267

Getting time in milliseconds in Java 8: 1508484583331

如果我们将这些长值转换为日期格式,那么所有三个都将是相同的,它将是

Input   1508484583259
Input (formatted)   1,508,484,583,259
Date (Etc/UTC)  Friday, October 20, 2017 7:29:43 AM UTC
Date (GMT)  Friday, October 20, 2017 7:29:43 AM GMT
Date (short/short format)   10/20/17 7:29 AM

在这里我只发布了一个选项结果,但所有三个都相同,或者您也可以在在线长日期转换器上自行检查。

【讨论】:

    【解决方案2】:

    要以毫秒为单位获取时间戳,只需调用:

    //kotlin 
    val tstamp = System.currentTimeMillis()
    //java
    long tstamp = System.currentTimeMillis();
    

    【讨论】:

    • 谢谢,但您为什么不使用日历或日期选项来获取时间戳?
    • 为简单起见可以使用该方法。但如果您需要其他时区的时间,请使用日历对象获取时间。
    • 那么在android设备中哪个更可取?
    • 如果您将结果发送到服务器,您还应该检查服务器时间,因为 android 设备时间可以由用户收费。
    • 是的,如果您只想方便地获取时间戳而不需要进入时区。但要小心以毫秒为单位返回时间戳。秒需要除以 1000。
    猜你喜欢
    • 2020-04-27
    • 2013-07-20
    • 2018-07-14
    • 2020-09-29
    • 2019-01-29
    • 2011-05-17
    • 1970-01-01
    • 2011-04-22
    • 2015-06-10
    相关资源
    最近更新 更多