0

sql.date オブジェクトを使用して現在の日付を yyyy-MM-dd の形式で取得するコードがあります。それを、sql.date と同じ形式の Calendar オブジェクトに型キャストしたいと考えています。

sql.date のコードは次のとおりです。

java.util.Date now = new java.util.Date();

java.sql.Date sqlDate = new java.sql.Date( now.getTime() );

編集:

これを Calendar オブジェクトに入れる方法を知りたいです。これを行うことさえ可能ですか?

4

4 に答える 4

3

Aには形式java.sql.Dateありません。ただのデートです。

それを文字列に変換するにはSimpleDateFormatter、関連するフォーマット セットで a を使用します。または、toStringどうしても必要な場合は単に使用しますyyyy-MM-dd。(残念ながら、どのタイム ゾーンを使用する必要があるかは明確ではありませjava.sql.Dateん。この点に関しては、文書化が非常に不十分です。デフォルトのシステム タイム ゾーンが使用されると思われます。)

指定された日付でオブジェクトを作成するCalendarには、次を使用できます。

Calendar calendar = Calendar.getInstance();
calendar.setTime(sqlDate);

繰り返しになりますが、a にCalendarはテキスト形式もありません。特定のタイム ゾーンの特定の暦体系の時点を表しますが、テキスト表現については何もありません。

于 2013-08-02T13:27:01.033 に答える
1

JavaDateオブジェクト (および であることに注意してください)に「フォーマット」がありません。それらはある瞬間を表しています。java.sql.Date java.util.Date

Calendarまた、「フォーマット」もありません。

あなたが求めていることは、Javaでは意味がありません。

SimpleDateFormatこれらのいずれかを文字列にフォーマットするために使用することを検討してください。

String str = new SimpleDateFormat("yyyy-MM-dd").format(myDate);

または、Calendarオブジェクトを使用する場合 (非推奨):

String str = new SimpleDateFormat("yyyy-MM-dd").format(myCalendar.getTime()); 
于 2013-08-02T13:27:11.237 に答える
0

次のスニペットを使用できます。

public class DateTest {

public static void main(String[] arg){

    Calendar calendar = Calendar.getInstance();
    //setting a valid date
    Date date = new Date(113,07,10);
    //prints the date as per format
    System.out.println("Date in YYYY-MM-DD : " +date);
    //sets the calendar with the date value in java.sql.Date instance
    calendar.setTime(date);
    //use simple date formatter to format the value in calendar instance
    SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
    System.out.println("Date formatted from Calendar instance : "+dateFormat.format(calendar.getTime()));
}

}

どうなるか教えてください!

于 2013-08-02T13:45:39.083 に答える