java - 将 DateTime 从 ISO_INSTANT 转换为从午夜算起的秒数

标签 java arrays datetime gps

我对 Java 和 DateTime 格式不太熟悉,我应该从 CSV 文件转换 GPS 数据。 我的问题是如何针对我正在使用的格式完成此操作。我从 GPS 数据获取的数据点的格式如下:

time,lat,lon,elevation

我已经分割了不同的数据点并将它们放入字符串数组中,并且我应该将数据点转换为整数或 double 组,如下所示:

public void convert() {
int n = timesstr.length; //Amount of data points
times = new int[n]; //Array for time in seconds (int)       
latitudes = new double[n]; //Array for latitudes (double)
longitudes = new double[n]; //Array for longitudes (double)
elevations = new double[n]; //Array for elevations (double)
}

我打算做一个for循环,逐个转换数组中的元素。现在的问题是我应该如何将时间从数据点转换为从午夜算起的秒数,因为时间数据点的格式为 ISO_INSTANT,例如

2017-08-13T08:52:26.000Z

我应该如何解析数据点并将其从 ISO_INSTANT 转换为午夜后的秒数?根据我得到的信息,数据点

2017-08-13T08:52:26.000Z

转换后应给出整数 31946,如午夜过后 31956 秒。

最佳答案

您可以通过以下方式完成:

LocalDateTime.parse("2017-08-13T08:52:26.000Z", DateTimeFormatter.ISO_DATE_TIME).get(ChronoField.SECOND_OF_DAY);

或者如 @Andreas 所指出的你可以这样做:

ZonedDateTime.parse("2017-08-13T08:52:26.000Z").get(ChronoField.SECOND_OF_DAY);

is shorter, and more lenient. It even supports Daylight Savings Time, if a time zone other that Z is given. - Andreas

关于java - 将 DateTime 从 ISO_INSTANT 转换为从午夜算起的秒数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46227378/

相关文章:

datetime - 将文本框文本设置为今天/明天/第二天/等。自动地?

C++ 添加 1 年至今

java - 安卓 : Updating UI components from async class

java - JTree 的右键单击行为就像在任何文件浏览器中一样

java - 在java中配置mysql url

arrays - 在C中初始化局部数组变量

c# - 单元测试 DateTime.Now

java - Tomcat- Axis 1.4 : (411)Length Required

c - 在结构数组中分配结构数据?

javascript - 我有一个代码可以循环由按钮控制的图像,我需要它来显示图像而无需按下图像