1

への変換にこの問題がありjava.sql.Timestamp.toStringますjava.sql.Timestamp。以下element = "2012-08-01 00:00:00.0"のコードを指定して使用するParseExceptionelementUnparseable date.

import java.sql.Timestamp
import java.text.SimpleDateFormat

Timestamp string_timestamp(String element) {        
  if(!date)
    return null 
  SimpleDateFormat dateFormat = new SimpleDateFormat("MM/dd/yyyy")
  // error lies here! //
    Date parsedDate = dateFormat.parse(date)
  return new Timestamp(parsedDate.getTime())
}

java.sql.Timestamp.toString()に戻す方法はありjava.sql.Timestampますか?

4

3 に答える 3

6

メソッドを単純化して、よりグルービーにする必要があると思います。Dategroovy 拡張でクラスを使用します。

def string_timestamp(element) {
    def date = Date.parse('yyyy-MM-dd HH:mm:ss.S', element)
    return new Timestamp(date.time)
}
于 2012-08-24T08:35:27.110 に答える
3

Date を使用するのは悪い考えです。Date は TimeZone 形式などをうまく処理しません。Calendar オブジェクトを使用できるかどうかを確認します。また、 date.getYear() のようなものは、期待どおりの年ではなく、2012-1900 を返すことに注意してください。以下の Date を使用した例を示しました。

import java.sql.Timestamp;
import java.text.SimpleDateFormat;
import java.util.*;

class ABC {

public Timestamp string_timestamp(String element) throws Exception  {        
  //if(!element)
    //return null; 
  SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.S");
  // error lies here! //
    Date parsedDate = dateFormat.parse(element);
  return new Timestamp(parsedDate.getTime());
}

public static void main(String[] args) throws Exception {
  ABC a = new ABC();
  System.out.println(" Value = " + a.string_timestamp("2012-08-01 01:12:56.0"));
}
}
于 2012-08-24T01:59:01.397 に答える
0

私はパーティーに少し遅れるかもしれないことを知っていますが、私はこれに出くわし、私は2セントを与えると思いました.

JavaTimestampオブジェクトにはstatic valueOf(String s)メソッドがあります。

API ごと:

static Timestamp    valueOf(String s)
Converts a String object in JDBC timestamp escape format to a Timestamp value.

注: 文字列は JDBC 形式である必要があります... したがって、日付を別の形式に解析する場合は、呼び出す前に解析する必要がある場合がありますTimestamp.valueOf(element)

API へのリンク: java.sql.Timestamp

于 2016-12-10T20:02:56.060 に答える