3

我的 javascript 时间戳是这样的:

 2013-08-11T19:13:20.000Z

我需要将其转换为 Java.Date 格式,以便我可以进行冒泡排序以找出数据库中最旧的元素是最新的元素。我该怎么做呢?

我的服务器中有一个 PostgresDb,使用 Javascript 为我提供带有这个时间戳的数据。在我的 Android 手机上,我不仅需要显示新数据,还需要显示旧数据,具体取决于用户滚动的方式。这两个数据都将根据用户的需要进行检索。现在每次用户调用新数据时,数据首先被添加到 Android 中的 SQLite DB,然后从那里检索以显示。

事情是任何“新”数据,无论其时间戳如何,都将按顺序存储。但我需要按时间顺序显示。因此问题。

4

5 回答 5

5
SimpleDateFormat format = new SimpleDateFormat(
            "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'", Locale.US);
format.setTimeZone(TimeZone.getTimeZone("UTC"));

Date date = format.parse("2013-08-11T19:13:20.000Z");

在此处输入图像描述

于 2013-08-12T13:14:31.603 回答
2

我认为这是解析此日期的最佳方法

javax.xml.bind.DatatypeConverter.parseDateTime("2013-08-11T19:13:20.000Z");

这个解析器专门用于解析这种日期格式,应该非常有效

于 2013-08-12T13:11:50.260 回答
1

如果它是一个有效的格式字符串,将其作为参数传递给日期对象,然后用于getTime获取时间戳,您可以将其传递给您的 java 代码以转换为 java 日期。

var tDate = new Date("2013-08-11T19:13:20.000Z");
alert(tDate.getTime());

或者您可以直接将字符串传递给您的 Java 代码并在那里进行所有转换。

于 2013-08-12T13:11:00.587 回答
1

我需要将其转换为 Java.Date 格式,以便我可以进行冒泡排序以找出数据库中最旧的元素是最新的元素

你真的不需要那个。如果您将日期存储在数据库中,则可以在查询中对数据进行排序:

SELECT yourFields FROM yourTable ORDER BY yourDate DESC

然后用java你可以使用

yourResultSet.first();

将光标移动到第一个元素(最新的)和

yourResultSet.last();

将光标移动到最后一个元素(最旧的元素)

于 2013-08-12T13:13:52.187 回答
0

Joda-Time是一个很棒的库或处理 Java 时间 API 的所有缺陷,而ISODateTimeFormat可能是您正在寻找的。

于 2013-08-12T13:10:46.803 回答