簡體   English   中英

將字符串轉換為日期

[英]converting a string to a date

我試圖將字符串轉換為SQL日期時間值。 例如201405021843300400應該成為2014-05-02 18:43:30:400到毫秒。

import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.text.ParsePosition;

public class DateFormat {

public static String decodeDate(String myDate, String pattern) {

    SimpleDateFormat sdf = new SimpleDateFormat(pattern);
    ParsePosition pos    = new ParsePosition(0);

    Date tmpDateTime = sdf.parse(myDate, pos);

    DateFormat dfFinal = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SSS");

    System.out.println("Milliseconds to DateTime: " + dfFinal.format(tmpDateTime));

    return dfFinal.format(tmpDateTime);
}

public static void main(String args[]) {

    System.out.println(decodeDate("201405021843300400", "yyyyMMddhhmmssSSSS"));
}

}

我嘗試從decodeDate中返回long,Date,java.sql.Timestamp,但是無法這樣做。 有沒有辦法將字符串轉換為日期時間戳?

提前致謝。

    // java.sql.Date      -> java.util.Date
    // java.sql.Timestamp -> java.util.Date
    // java.sql.Time      -> java.util.Date

    // e.g. with long value

    String target = "201405021843300400";
    DateFormat df = new SimpleDateFormat("yyyyMMddhhmmssSSSS");

    java.sql.Timestamp date = new java.sql.Timestamp(df.parse(target).getTime());

    or
    new java.sql.Timestamp(year, month, date, hour, minute, second, nano)

我懷疑有一個預制功能可以做你想要的,你將需要解析字符串並使用現有的日歷功能來設置日期的各個部分。 構建函數應該很容易,因為你知道你的格式。

然后你可以使用

Calendar.set(int year, int month, int date, int hourOfDay, int minute, int second) 

使用適當的時間戳創建Calendar對象。

http://docs.oracle.com/javase/7/docs/api/java/util/Calendar.html

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM