2010-04-30 41 views
19

Tôi muốn chuyển đổi chuỗi Ngày thành Dấu thời gian trong java. Mã sau đây tôi đã viết. Tôi đã khai báo ngày cho date1 là: 7-11-11 12:13:14.Làm thế nào để chuyển đổi ngày chuỗi thành Dấu thời gian trong java?

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()); 

Tôi muốn chuyển đổi ngày 7-11-11 12:13:14 ngày chuỗi này thành dấu thời gian. Bây giờ tôi có đầu ra là 0007-11-11 00: 13: 14.000000 +05: 30: 00 nhưng tôi muốn (7-11-11 12:13:14) định dạng ngày Dấu thời gian này. Ai đó làm ơn giúp tôi với. Cảm ơn bạn.

+0

thể trùng lặp của - (http [Java Timestamp Làm thế nào tôi có thể tạo ra một Timestamp với ngày 23/09/2007?]: // stackoverflow. com/questions/974973/java-timestamp-how-can-i-create-a-dấu thời gian-với-ngày-23-09-2007) –

Trả lời

16

Tất cả bạn cần làm là thay đổi chuỗi trong java.text.SimpleDateFormat constructor để: "MM-dd-yyyy HH: mm: ss ".

Chỉ cần sử dụng các chữ cái thích hợp để tạo chuỗi ở trên để khớp với ngày nhập của bạn.

+0

Cảm ơn câu trả lời của bạn. – lakshmi

+0

Tôi đã thay đổi SimpleDateFormat như "yyyy-MM-dd HH: mm: ss". Bây giờ tôi có một câu trả lời là 2007-11-11 12: 13: 14.000000 +05: 30: 00, vấn đề là tôi không thể thêm giá trị này vào bảng cơ sở dữ liệu của tôi. Tôi muốn hiển thị định dạng ngày và giờ là 2007-11-11 12:13:14. Làm như thế nào..? – lakshmi

+0

Cảm ơn rất nhiều Tôi đã nhận được câu trả lời. – lakshmi

3

Sử dụng vốn HH để có được giờ của định dạng ngày, thay vì giờ sáng/chiều

+0

Cảm ơn câu trả lời của bạn .. – lakshmi

2

Bạn thậm chí có thể thử điều này.

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 có thể phân tích

Nếu bạn có thể sử dụng bốn chữ số đầy đủ cho năm nay, chuỗi đầu vào của bạn của 2007-11-11 12:13:14 sẽ ở định dạng SQL tiêu chuẩn giả định giá trị này được hiểu là ở tính theo giờ UTC Múi giờ.

Lớp java.sql.Timestamp có phương thức valueOf để phân tích cú pháp trực tiếp các chuỗi như vậy.

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

java.time

Trong Java 8 và sau đó, khuôn khổ java.time làm cho nó dễ dàng hơn để kiểm tra kết quả. Lớp j.s.Timestamp có thói quen khó chịu khi áp dụng ngầm thời gian mặc định hiện tại của JVM của bạn khi tạo biểu diễn chuỗi thông qua phương thức toString của JVM. Ngược lại, các lớp java.time theo mặc định sử dụng các định dạng chuẩn ISO 8601.

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

Bạn có thể chuyển đổi String để timestamp:

String inDate = "01-01-1990" 
DateFormat df = new SimpleDateFormat("MM-dd-yyyy"); 
Timestamp ts = new Timestamp(((java.util.Date)df.parse(inDate)).getTime()); 
Các vấn đề liên quan