如何将Javascript中的日期转换为Java日期?

3

我的 JavaScript 时间戳是这样的:

 2013-08-11T19:13:20.000Z

我需要将此转换为 Java.Date 格式,以便可以进行冒泡排序,找出从数据库中最旧的元素和最新的元素。我该如何做?

我的服务器上有一个 PostgresDb,使用 Javascript 提供带有此时间戳的数据。在我的 Android 手机上,我需要显示新数据和旧数据,具体取决于用户滚动的方式。根据用户需要检索两个数据。现在每当用户调用新数据时,数据首先添加到 Android 中的 SQLite DB 中,然后从那里检索并显示。

问题是无论其时间戳如何,“新”数据都将按顺序存储。但是我需要按时间顺序显示,这就是问题所在。


有没有可能从JS中获取长整型而不是字符串? - Suresh Atta
2
我需要将这个转换成Java.Date格式,以便我可以进行冒泡排序,找出数据库中最旧的元素和最新的元素。你考虑过在查询中使用ORDER BY语句来代替用Java自己排序数据吗? - BackSlash
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");

enter image description here


2
我认为这是解析此日期的最佳方法。
javax.xml.bind.DatatypeConverter.parseDateTime("2013-08-11T19:13:20.000Z");

此解析器专门用于解析此日期格式,应该非常高效。


1
如果它是一个有效的格式字符串,将其作为参数传递给日期对象,然后使用 getTime 获取时间戳,您可以将其传递给您的Java代码以转换为Java日期。
var tDate = new Date("2013-08-11T19:13:20.000Z");
alert(tDate.getTime());

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

1
我需要将这个转换成Java.Date格式,以便进行冒泡排序,找出数据库中最旧的元素和最新的元素。 您实际上不需要这样做。如果您在数据库中存储了日期,可以在查询中对数据进行排序:
SELECT yourFields FROM yourTable ORDER BY yourDate DESC

然后使用Java,您可以使用:
yourResultSet.first();

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

yourResultSet.last();

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

这会给我带来一个小问题,因为无论我做什么,从数据库中获取的数据都必须存储在Android本地sqllite数据库中。然后从中检索数据以显示。如果我不在客户端按时间排序,那么很难显示哪些是新数据,哪些是旧数据。 - Hick
@Hick,我没看懂重点在哪里。使用查询语句获取数据时,有什么问题吗?SQL和SQLite都支持“ORDER BY”语句。 - BackSlash
@Hick_问题是,任何“新”的数据,无论其时间戳如何,都将按顺序存储。但我需要按时间顺序显示。因此出现了问题。_在SQLite数据库中还存储日期(或时间戳),您可以使用该查询。 - BackSlash

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接