4

SQLタイムスタンプに変換したいエポックタイムがあります。このコードを使用して、エポックから実際の時間を抽出できます。

String time = "1351504294";
long t = Long.parseLong(time);
Timestamp ts = new Timestamp(t*1000);

私が得ている出力は次のとおり2012-10-29 09:58:50.0です。しかし、これをテーブルに挿入しようとすると、ミリ秒部分「09:58:50.0」が原因でエラーが表示されます。タイムスタンプからミリ秒の部分を削除するにはどうすればよいですか?

4

2 に答える 2

6

TimestampSQL ステートメントに直接追加している場合、Java はtoString()常に format を出力する関数を呼び出していますyyyy-mm-dd hh:mm:ss.fffffffffTimestampナノ秒の部分を削除するオブジェクトに対してできることは何もありません。

部分だけが必要な場合は、次のyyyy-MM-dd hh:mm:ssいずれかを実行できます。

Timestamp ts = new Timestamp(t*1000);
String s = ts.toString().split('\\.')[0];

または、次を使用できますSimpleDateFormat

Timestamp ts = new Timestamp(t*1000);
String s = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss").format(ts);
于 2012-10-29T04:57:37.557 に答える
0

この方法で試してみてください....

public class Time {

    public static void main(String[] args){

        String time = "1351504294";
        long t = Long.parseLong(time);
        Timestamp ts = new Timestamp(t*1000);

        String date = new SimpleDateFormat("YYYY-MM-dd hh:mm:ss").format(ts);
        System.out.println(date);
    }
}
于 2012-10-29T05:12:26.127 に答える