我正在添加这个问题,因为我是Java和Android的新手,我搜索了几个小时试图解决这个问题.答案来自相关答案的组合,所以我想我会记录我为其他可能正在努力的人学到的东西.见答案.
对于一些背景知识,我的经验主要是PHP的Web开发和一点Ruby.我唯一的操作系统是Linux(Ubuntu Studio),我(不情愿地)在Android Studio 2.1.2中开发我的第一个Android应用程序.我的Java设置如下:
>java -version
> openjdk version "1.8.0_91"
> OpenJDK Runtime Environment (build 1.8.0_91-8u91-b14-3ubuntu1~15.10.1-b14)
> OpenJDK 64-Bit Server VM (build 25.91-b14, mixed mode)
Run Code Online (Sandbox Code Playgroud) datetime android android-gradle-plugin threetenbp threetenabp
反正有没有得到一个java.time(Java 8中新的)兼容时间类ResultSet?
我知道你可以使用ResultSet's getDate或者getTimestamp这些方法返回java.sql.Date/ java.sql.Timestamp对象现在已被弃用,所以使用它们来创建一个ZonedDateTime或类似的似乎是不好的做法.
我正在使用 java 11。想知道验证日期时间字符串是否符合 java 中的 ISO8601 要求的最佳(最重要的是推荐)方法是什么。
另外如何将此字符串值与 java.sql.Timestamp 进行比较?
我刚刚遇到了一个非常奇怪的行为。我想比较2个使用完全相同的日期d1.equals(d2);,但结果是错误的。
调试时,我发现两个日期的“快速时间”为1531951200000。之后,我将检查更改为d1.getTime() == d2.getTime()并得到了相等的结果。
我还检查equals()的方法,java.util.Date这确实几乎完全一样
public boolean equals(Object obj) {
return obj instanceof Date && getTime() == ((Date) obj).getTime();
}
Run Code Online (Sandbox Code Playgroud)
请注意,这两个对象都是类型java.util.Date这就排除了,有可能是一个区别,即java.util.DateVS java.sql.Date。还要注意,其中一个值是从数据库中读取的,而另一个是从文件中读取的。这两个值都设置为带有java.util.Date字段的同一类的不同实例。
有人对此有解释吗?还是我只是想念一些东西?