没有正确读取毫秒时间
Not Reading Millisecond Time Correctly
所以我正在从 OpenWeatherMap api 中提取数据,一切都很顺利,直到我返回内布拉斯加州奥马哈的日出和日落时间。我在这里查看了以前的帖子并将它们用作参考,例如使用 TimeUnit class 的帖子在我的情况下仍然关闭,而使用 Date/SimlpeDateFormatter 的帖子似乎几乎在同一时间输出。转换这些时间的方法在我看来可能是正确的,但它们转换成的时间却并非如此。我应该使用某种方法来转换它们,还是我正在使用的当前方法做错了什么?
以毫秒为单位的方法
public String getSunrise() {
valueString = main.substring(main.indexOf("\"sunrise\"") + 10, main.indexOf("\"sunrise\"") + 20);
System.out.println(valueString);
Long rise = Long.parseLong(valueString);
Date d = new Date(rise);
SimpleDateFormat format = new SimpleDateFormat("h:mm a");
format.setTimeZone(TimeZone.getTimeZone("CDT"));
String t = format.format(d);
return t;
}
public String getSunset() {
valueString = main.substring(main.indexOf("\"sunset\"") + 9, main.indexOf("\"sunset\"") + 19);
System.out.println(valueString);
Long set = Long.parseLong(valueString);
Date d = new Date(set);
SimpleDateFormat format = new SimpleDateFormat("h:mm a");
format.setTimeZone(TimeZone.getTimeZone("CDT"));
String t = format.format(d);
return t;
}
方法的控制台输出
1588504675
Sunrise: 9:15 AM
1588555387
Sunset: 9:15 AM
根据它正在拉取的当前数据,时间应该是日出 = 6:17am 和日落 = 8:23pm,取自 link:https://openweathermap.org/city/5074472。 main
是完整的 JSON 字符串。
以毫秒为单位获取时间的方法:Open Weather Map API中的值是以秒为单位,而不是毫秒。在您的问题中,1588504675
是 1970 年。但是 1588504675000
是 2020 年 5 月 3 日(时间部分是 UTC)。
所以我正在从 OpenWeatherMap api 中提取数据,一切都很顺利,直到我返回内布拉斯加州奥马哈的日出和日落时间。我在这里查看了以前的帖子并将它们用作参考,例如使用 TimeUnit class 的帖子在我的情况下仍然关闭,而使用 Date/SimlpeDateFormatter 的帖子似乎几乎在同一时间输出。转换这些时间的方法在我看来可能是正确的,但它们转换成的时间却并非如此。我应该使用某种方法来转换它们,还是我正在使用的当前方法做错了什么?
以毫秒为单位的方法
public String getSunrise() {
valueString = main.substring(main.indexOf("\"sunrise\"") + 10, main.indexOf("\"sunrise\"") + 20);
System.out.println(valueString);
Long rise = Long.parseLong(valueString);
Date d = new Date(rise);
SimpleDateFormat format = new SimpleDateFormat("h:mm a");
format.setTimeZone(TimeZone.getTimeZone("CDT"));
String t = format.format(d);
return t;
}
public String getSunset() {
valueString = main.substring(main.indexOf("\"sunset\"") + 9, main.indexOf("\"sunset\"") + 19);
System.out.println(valueString);
Long set = Long.parseLong(valueString);
Date d = new Date(set);
SimpleDateFormat format = new SimpleDateFormat("h:mm a");
format.setTimeZone(TimeZone.getTimeZone("CDT"));
String t = format.format(d);
return t;
}
方法的控制台输出
1588504675
Sunrise: 9:15 AM
1588555387
Sunset: 9:15 AM
根据它正在拉取的当前数据,时间应该是日出 = 6:17am 和日落 = 8:23pm,取自 link:https://openweathermap.org/city/5074472。 main
是完整的 JSON 字符串。
以毫秒为单位获取时间的方法:Open Weather Map API中的值是以秒为单位,而不是毫秒。在您的问题中,1588504675
是 1970 年。但是 1588504675000
是 2020 年 5 月 3 日(时间部分是 UTC)。