如何获得自1970年以来的日期值的秒数?

use*_*849 44 android

我需要一个Android应用程序,我需要将当前日期转换为自1970年以来的秒数.

我现在正在做的是这个.

Calendar cal = new GregorianCalendar(TimeZone.getTimeZone("GMT"));
cal.set(currentDate.get(Calendar.YEAR), month, currentDate.get(Calendar.DAY_OF_MONTH), 0, 0, 0);
long timesince1970 = cal.getTime().getTime();
Run Code Online (Sandbox Code Playgroud)

另一个问题是我的应用程序需要在德国运行.因此需要将时间转换为他们的时区,然后将其转换为自1970年以来的秒数.

以上并没有给我正确的结果.

Jea*_*nal 108

System.currentTimeMillis() 给出自Unix纪元(1970年1月1日00:00:00 UTC)以来的毫秒数.

除以1000得到秒数.

  • @CliffBurton:是的,确实如此.Android手机通常设置为自动同步他们的时间,但返回的日期可能是错误的.如果您需要准确的时间,通常需要进行某种在线检查.(注意:由于返回的时间是UTC,它不受DST或时区的影响,除非出现错误) (2认同)

Fax*_*yev 9

//long currentTimeMillis ()-Returns the current time in milliseconds. 
long millis = System.currentTimeMillis();

//Divide millis by 1000 to get the number of seconds.
long seconds = millis / 1000;
Run Code Online (Sandbox Code Playgroud)

  • 您应该解释为什么您的代码可以回答这个问题。 (2认同)