1
String string_Date = "2014-06-11"; //my string date 
SimpleDateFormat simpleFormat = new SimpleDateFormat("yyyy-MM-dd");  
// Date startTimestam = simpleFormat.parse(string_Date); 
Timestamp startTimestam = Timestamp.valueOf(string_Date); 
Calendar cal = Calendar.getInstance(); 
cal.setTime(startTimestam);
cal.set(Calendar.HOUR_OF_DAY, 0); 
cal.set(Calendar.MINUTE, 0);
cal.set(Calendar.SECOND, 1);  
starTimeStamp = new Timestamp(cal.getTime().getTime()); 
// will get output date is "2014-06-11 00:00:01"

  • ここでは、文字列を日付またはタイムスタンプに変換するために単純な形式を使用したくありません。
  • 上記のコードを実行すると、例外が発生しillegalArgumentExceptionます

    タイムスタンプの形式は yyyy-mm-dd hh:mm:ss[.fffffffff]** である必要があります

  • フォーマットが文字列の日付に変換されなくても可能ですか。
  • 可能であれば、私にとって非常に役に立ちます。

4

1 に答える 1

2

以下の理由により、あなたの質問はあまり明確ではありません。

1) SimpleDateFormat の使用を避けたいのはなぜですか?

2) 文字列をタイムスタンプに、または日付をタイムスタンプに変換しますか?

String を Timestamp に変換する場合は、簡単です (SimpleDateFormat を使用しません)。

String timeValueStr="00:00:01";
String startTimeStr="2014-06-11" + " " + timeValueStr;
Timestamp startTimestamp = Timestamp.valueOf(startTimeStr);

String を Date に変換してから Date を Timestamp に変換する場合:

//String to Date conversion
String startTimeStr = "2014-06-11"; 
SimpleDateFormat simpleFormat = new SimpleDateFormat("yyyy-MM-dd"); 
Date d = simpleFormat.parse(startTimeStr);
//Date to Timestamp conversion
Calendar cal = Calendar.getInstance();
cal.setTime(d);
cal.set(Calendar.HOUR_OF_DAY, 0);
cal.set(Calendar.MINUTE, 0);
cal.set(Calendar.SECOND, 1);
Timestamp startTimestamp = new Timestamp(cal.getTime().getTime());

もちろん、SimpleDateFormat を避ける必要がある場合は、まず String を Timestamp に変換してから Date に変換するコードを次に示します (SimpleDateFormat を使用せずに String を Date に直接変換する方法はありません)。

String timeValueStr="00:00:01";
String startTimeStr="2014-06-11" + " " + timeValueStr;
Timestamp startTimestamp = Timestamp.valueOf(startTimeStr);
Date d = new Date(startTimestamp.getTime());
于 2014-07-16T08:28:54.090 に答える