Java 将字符串转换为日期并进行比较

Java 将字符串转换为日期并进行比较,java,Java,我从数据库中提取的一个字段是字符串格式的日期,我需要将其转换为日期类型,以便与另一个日期进行比较 请问我该怎么做?到目前为止,我所尝试的一切都给了我一个错误,java.util.Date无法转换为java.sql.Date,这是在尝试以下示例 以字符串格式提取的日期示例为“2012-10-15 09:00:29.157”。我认为要声明的格式是yyyy-MM-dd HH:MM:ss.SSS,但不确定 谢谢您可以从java.sql.Date创建java.util.Date,如下所示: java.u

我从数据库中提取的一个字段是字符串格式的日期,我需要将其转换为日期类型,以便与另一个日期进行比较

请问我该怎么做?到目前为止,我所尝试的一切都给了我一个错误,
java.util.Date无法转换为java.sql.Date
,这是在尝试以下示例

以字符串格式提取的日期示例为“2012-10-15 09:00:29.157”。我认为要声明的格式是yyyy-MM-dd HH:MM:ss.SSS,但不确定


谢谢

您可以从
java.sql.Date
创建
java.util.Date
,如下所示:

java.util.Date date = new java.util.Date(resultSet.getDate("Column").getTime());
或者,您可以将
java.sql.Date
转换为
java.util.Calendar
或Joda库的DateTime并执行比较

如果您正在查看解析日期,那么
java.text.simpleDataFormat
就是您的朋友

SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
java.util.Date date = format.parse("2012-10-15 09:00:29.157");

您可以从
java.sql.Date
创建
java.util.Date
,如下所示:

java.util.Date date = new java.util.Date(resultSet.getDate("Column").getTime());
或者,您可以将
java.sql.Date
转换为
java.util.Calendar
或Joda库的DateTime并执行比较

如果您正在查看解析日期,那么
java.text.simpleDataFormat
就是您的朋友

SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
java.util.Date date = format.parse("2012-10-15 09:00:29.157");

它只是表示您正在
java.sql.Date
中分配
java.util.Date

根据您的示例,您必须执行以下操作:

SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
java.util.Date date = (java.util.Date)formatter.parse(""2012-10-15 09:00:29.157"");

它只是表示您正在
java.sql.Date
中分配
java.util.Date

根据您的示例,您必须执行以下操作:

SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
java.util.Date date = (java.util.Date)formatter.parse(""2012-10-15 09:00:29.157"");

如维克多所示,转换为日期。然后获取
long timestamp=date.getTimestamp()


现在这个长值是从1970年utc开始的毫秒。只需按此值进行比较。

转换为Vikdor显示的日期。然后获取
long timestamp=date.getTimestamp()


现在这个长值是从1970年utc开始的毫秒。只需按此值进行比较。

显示您的代码和异常的堆栈跟踪。你不应该把日期读作字符串。你应该把它们读作日期或时间戳。那么,你导入了什么类型的
Date
?如果您导入了
java.sql.Date
SimpleDataFormat
解析器返回
java.util.Date
,那么您会得到一个类强制转换异常,这并不奇怪,您可能正在使用“java.sql.Date”DateFormat.parse()'返回'java.util.Date'的实例,而不是'java.sql.Date'。如果要使用“java.sql.Date”将日期从“java.util.Date”转换为“java.sql.Date”,请执行以下操作:java.util.Date fromDate=df.parse(fromdate1);java.sql.Date sqlDate=new java.sql.Date(fromDate.getTime());显示您的代码和异常的堆栈跟踪。你不应该把日期读作字符串。你应该把它们读作日期或时间戳。那么,你导入了什么类型的
Date
?如果您导入了
java.sql.Date
SimpleDataFormat
解析器返回
java.util.Date
,那么您会得到一个类强制转换异常,这并不奇怪,您可能正在使用“java.sql.Date”DateFormat.parse()'返回'java.util.Date'的实例,而不是'java.sql.Date'。如果要使用“java.sql.Date”将日期从“java.util.Date”转换为“java.sql.Date”,请执行以下操作:java.util.Date fromDate=df.parse(fromdate1);java.sql.Date sqlDate=new java.sql.Date(fromDate.getTime());谢谢亚历克斯温。这有助于汉克斯·阿列克斯温。这有助于汉克斯·维克多。这有助于汉克斯·维克多。这有帮助