long timestamp to LocalDateTime

后端 未结 5 1149
情深已故
情深已故 2020-12-05 06:13

I have a long timestamp 1499070300 (equivalent to Mon, 03 Jul 2017 16:25:00 +0800) but when I convert it to LocalDateTime I get 1970-01-18T16:24:30.300

Here\'s my co

相关标签:
5条回答
  • 2020-12-05 06:38

    Try with the following..

    long test_timestamp = 1499070300000L;
        LocalDateTime triggerTime =
                LocalDateTime.ofInstant(Instant.ofEpochMilli(test_timestamp), TimeZone
                        .getDefault().toZoneId());  
    

    By default 1499070300000 is int if it dosen't contain l in end.Also pass time in milliseconds.

    0 讨论(0)
  • 2020-12-05 06:43

    You need to pass timestamp in milliseconds:

    long test_timestamp = 1499070300000L;
    LocalDateTime triggerTime =
            LocalDateTime.ofInstant(Instant.ofEpochMilli(test_timestamp), 
                                    TimeZone.getDefault().toZoneId());  
    
    System.out.println(triggerTime);
    

    Result:

    2017-07-03T10:25
    

    Or use ofEpochSecond instead:

    long test_timestamp = 1499070300L;
    LocalDateTime triggerTime =
           LocalDateTime.ofInstant(Instant.ofEpochSecond(test_timestamp),
                                   TimeZone.getDefault().toZoneId());   
    
    System.out.println(triggerTime);
    

    Result:

    2017-07-03T10:25
    
    0 讨论(0)
  • 2020-12-05 06:53

    If you are using the Android threeten back port then the line you want is this

    LocalDateTime.ofInstant(Instant.ofEpochMilli(startTime), ZoneId.systemDefault())
    
    0 讨论(0)
  • 2020-12-05 06:58

    Try with Instant.ofEpochMilli() or Instant.ofEpochSecond() method with it-

    long test_timestamp = 1499070300L;
    LocalDateTime date =
        LocalDateTime.ofInstant(Instant.ofEpochMilli(test_timestamp ), TimeZone
            .getDefault().toZoneId());
    
    0 讨论(0)
  • 2020-12-05 06:58

    Your issue is that the timestamp is not in milliseconds but expressed in seconds from the Epoch date. Either multiply by 1000 your timestamp or use the Instant.ofEpochSecond().

    0 讨论(0)
提交回复
热议问题