2010-04-30 78 views
19

我想在java中将字符串Date转换为Timestamp。我写了下面的代码。我已经声明date1的日期是:7-11-11 12:13:14。如何将字符串日期转换为java中的Timestamp?

SimpleDateFormat datetimeFormatter1 = new SimpleDateFormat(
       "yyyy-MM-dd hh:mm:ss"); 
Date lFromDate1 = datetimeFormatter1.parse(date1); 
System.out.println("gpsdate :" + lFromDate1); 
Timestamp fromTS1 = new Timestamp(lFromDate1.getTime()); 

我想将7-11-11 12:13:14这个字符串日期转换为时间戳。现在我得到的输出是0007-11-11 00:13:14.000000 +05:30:00但我想(7-11-11 12:13:14)这种格式的时间戳日期。谁能帮帮我吗。谢谢。

+0

的可能重复 - (HTTP [Java的时间戳如何创建一个带有时间戳的日期23/09/2007?]://计算器。问题/ 974973/java-timestamp-how-can-i-create-a-timestamp-with-date-23-09-2007) – 2014-03-28 16:55:00

回答

16

所有你需要做的是改变java.text.SimpleDateFormat构造函数中的字符串: “MM-DD-YYYY HH:MM: SS”。

只需使用适当的字母来构建上述字符串以匹配您的输入日期。

+0

感谢您的回答。 – lakshmi 2010-04-30 06:09:49

+0

我改变了SimpleDateFormat,像“yyyy-MM-dd HH:mm:ss”。现在我得到一个答案是2007-11-11 12:13:14.000000 +05:30:00,问题是我不能将此值添加到我的数据库表中。我想显示的日期和时间格式是2007-11-11 12:13:14。这个怎么做..? – lakshmi 2010-04-30 06:18:39

+0

非常感谢我得到了答案。 – lakshmi 2010-04-30 06:44:15

3

利用资本HH得到一天格式的时间,而不是AM/PM小时

+0

感谢您的回答.. – lakshmi 2010-04-30 06:19:40

2

你甚至可以试试这个。

String date="09/08/1980"; // take a string date 
    Timestamp ts=null; //declare timestamp 
    Date d=new Date(date); // Intialize date with the string date 
    if(d!=null){ // simple null check 
     ts=new java.sql.Timestamp(d.getTime()); // convert gettime from date and assign it to your timestamp. 
    } 
6

的java.sql.Timestamp可以解析

如果您可以使用完整的四位数年,2007-11-11 12:13:14您输入的字符串将是标准的SQL格式假设这个值意味着要一直UTC时区。

java.sql.Timestamp类有一个valueOf方法来直接解析这样的字符串。

String input = "2007-11-11 12:13:14" ; 
java.sql.Timestamp ts = java.sql.Timestamp.valueOf(input) ; 

java.time

在Java 8及更高版本,java.time框架使得它更容易验证结果。 j.s.Timestamp类有一个令人厌恶的习惯,在通过其toString方法生成字符串表示时隐式应用JVM的当前默认时间戳。相比之下,java.time类默认使用标准ISO 8601格式。

System.out.println("Output: " + ts.toInstant().toString()); 
1

您可以将字符串转换为时间戳:

String inDate = "01-01-1990" 
DateFormat df = new SimpleDateFormat("MM-dd-yyyy"); 
Timestamp ts = new Timestamp(((java.util.Date)df.parse(inDate)).getTime());