java - 在 Java 中存储、检索和比较日期的最佳方式

标签 java android sqlite date time

我有 PHP 背景。很长一段时间以来,我一直是一名 PHP 开发人员。我想跳入 Android 应用程序开发。我创建了一个应用程序,但我不觉得我对时间和日期功能有很强的把握,尤其是当存储在数据库中时。 O 我主要关心的问题之一是如何从数据库 (SQLite) 中存储和检索日期并比较它们。

我在 PHP 中的实现方式很简单;我使用 time() 函数,它为当前时间创建一个 unix 时间戳,然后我将它作为一个整数存储在 MySQL 数据库中。由于 MySQL 的日期函数,以及通过 PHP 轻松检索和比较日期作为整数的能力,这让事情变得非常简单和容易。

基本上,我想知道什么是 Java 的最佳解决方案。在为我 future 的 Android 应用程序创建、存储、检索和比较日期时,您建议我做什么?

这是我将使用的 PHP 代码示例,也许这会让其他人更好地了解我的习惯和我正在寻找的东西:

Database structure:
`id` (int) auto increment
`username` (varchar)
`the_date` (int)

<?php

$username = 'scarhand77';
$the_date = time();

// insert into database

mysql_query("insert into `stack_overflow` (`username`, `the_date`) values ('$username', '$the_date')");

// retrieve from database

$user_date = mysql_result(mysql_query("select `the_date` from `stack_overflow` where `username`='$username'"), 0);

// compare $user_date, see if its older than right now

if ($user_date < time())
    echo 'it is older';
else
    echo 'it is not older';

?>

如有任何帮助,我们将不胜感激。

最佳答案

只需使用原始 long。从 System.currentTimeMillis(); 返回的是同一个(当前时间)。 它是自 1970 年以来的毫秒数。它与 unix 时间基本相同,但具有带符号的 64 位值(java long)并且以毫秒而不是秒为单位。

java.util.Date 对象也只是 long 的包装器,所以大部分情况下毫无意义,但如果您也愿意,可以很容易地与 Date 对象一起使用。不要与 java.sql.Date

混淆

然后您可以像在示例中一样比较时间

long time1 = System.currentTimeMillis();
long time2 = ...;

if (time2 < time1) {

关于java - 在 Java 中存储、检索和比较日期的最佳方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14003948/

相关文章:

Java jdbc从mysql中检索特定数据

java - 使用 .compareTo 比较日期时,为什么不考虑月份?

android - 如何将 ORMLite 与 android 集成

java - android sqlite接口(interface)可以在android外使用吗

java - 扫描仪无法关闭

java - Liferay已安装但本地主机:8080 return "No data received"

Android studio 外部库项目

java - 在 Java 中使用值为 1 的 boolean 值

android - 来自 Assets 文件夹android的Filenotfound异常?

java - 尝试打开页面大小为 64KB 的 sqlite 数据库时出现异常