2017-11-20 3 views
0
public List<Date> getDate(){ 
    @SuppressWarnings("unchecked") 
    List<String> cr =   (List<String>)getSession().createCriteria(OrderEntity.class) 
      .setProjection(Projections.projectionList() 
        .add(Property.forName("ordertime")) 
        ) 
      .list(); 
    System.out.println("zxcv"); 
    System.out.println(cr);//the output is here [2017-10-23 15:15:53.0, 2017-10-25 11:53:56.0, 2017-10-25 11:54:35.0} 
    List<Date> dates = new ArrayList(cr.size()); 
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-mm"); 
    for (String dateString : cr) { 
     dates.add(sdf.parse(dateString)); 
    } 
    System.out.println(dates); 
    return dates; 
} 

エラーがあります:(YYYY-MM)形式に(データベースからactrived)日付のリストを変換しようと

たjava.sql.Timestampはjava.lang.Stringでにキャストすることはできません。

このエラーを解決する方法を教えてください。 ありがとうございます。

+0

を行います。 –

+0

こんにちは、ここからエラーが出ました - [(String dateString:cr)] – Alex

+0

出力をこの形式の "yyyy-mm"に変換しようとしています – Alex

答えて

0

データベースエンジンは、あなたの日付が文字列ではなく日付であることを既に知っています。 println()は配列要素にtoString()を使用しているため、表示されません。 List<String>からList<Timestamp>に仕様を変更し、代わりに

for (String dateString : cr) { 
    dates.add(sdf.parse(dateString)); 
} 

あなたはこのエラーを取得している行に

for (Timestamp ts : cr) { 
    dates.add(new Date(ts.getTime())); 
} 
+0

こんにちは、ソリューションはエラーなしで動作しますが、この形式の "yyyy-mm"に日付を変換する方法は、今すぐこのように出力されます[2017-10-23 15:15: 53.0、2017-10-25、11:53:56.0]。あなたにウルの助けをありがとう – Alex

+0

フォーマットされた日付が必要な場合は、 'SimpleDateFormat'を見てください。 **日付の解析**に使用しましたが、**日付の書式設定も可能です。 –

+0

私はそれを得る。 – Alex

関連する問題