Java convert double to date format

后端 未结 2 1418
不知归路
不知归路 2021-01-26 16:16

I have made a little app in ios+firebase, now I am trying to connect android. In ios I save date as double (for example: -242528463.775282), but then I trying to retrieve same d

2条回答
  •  遥遥无期
    2021-01-26 16:37

    Since your double represents the number of seconds of you date from now, and the Date constructor in Java is expecting a number of milliseconds since 01-01-1970, you have to multiply your number to get a number of milliseconds (* 1000) and substract that from the current number of milliseconds since 01-01-1970 (System.currentTimeMillis()):

    double myDouble = -242528463.775282;
    long myLong = System.currentTimeMillis() + ((long) (myDouble * 1000));
    System.out.println(myLong);
    
    Date itemDate = new Date(myLong);
    String myDateStr = new SimpleDateFormat("dd-MM-yyyy").format(itemDate);
    System.out.println(myDateStr);
    

    But, the problem with the way you store your dates is that if you are calling this code today and tomorrow it will not return the same date, as the current time is changing. You should use timeIntervalSince1970 instead of timeIntervalSinceNow.

提交回复
热议问题