web-dev-qa-db-ja.com

Javaで日付型の変数を初期化する方法は?

import Java.util.Date;
Date firstDate; 

たとえばあなたが言う文字列の最初の日付を初期化する方法がわかりません

String line1="First line" 

しかし、日付の形式はどのようなものですか?

9
owlprogrammer

これは、Dateクラスに関するOracleのWebサイトのJavadocです。 https://docs.Oracle.com/javase/8/docs/api/Java/util/Date.html
[コンストラクタの概要]までスクロールすると、Dateオブジェクトをインスタンス化する方法に関するさまざまなオプションが表示されます。 Javaのすべてのオブジェクトと同様に、次のものを使用して新しいオブジェクトを作成します。

Date firstDate = new Date(ConstructorArgsHere);

今、あなたは少し選択肢があります。引数を渡さずにこれを行う場合は、

Date firstDate = new Date();

呼び出した正確な日時を表します。以下は、利用したい他のコンストラクタです。

Date firstDate1 = new Date(int year, int month, int date);
Date firstDate2 = new Date(int year, int month, int date, int hrs, int min);
Date firstDate3 = new Date(int year, int month, int date, int hrs, int min, int sec);
5

文字列から日付を解析するには、希望する形式を選択できます。例えば:

public Date StringToDate(String s){

    Date result = null;
    try{
        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        result  = dateFormat.parse(s);
    }

    catch(ParseException e){
        e.printStackTrace();

    }
    return result ;
}

この方法を今使用したい場合は、このようなものを使用する必要があります

Date date = StringToDate("2015-12-06 17:03:00");

詳細については、チェックアウトする必要があります http://docs.Oracle.com/javase/7/docs/api/Java/text/SimpleDateFormat.html

2
Ron

現在の日付に初期化するには、次のようにします。

Date firstDate = new Date();

文字列から取得するには、次のように SimpleDateFormat を使用できます。

String dateInString = "10-Jan-2016";
SimpleDateFormat formatter = new SimpleDateFormat("dd-MMM-yyyy");
try {
    Date date = formatter.parse(dateInString);
    System.out.println(date);
    System.out.println(formatter.format(date));
} catch (ParseException e) {
    //handle exception if date is not in "dd-MMM-yyyy" format
}
1
SMA

Java.util.Dateコンストラクターのようなパラメーター 新しい日付(int年、int月、int日付、int hrs、int min)。は非推奨であり、できればもう使用しないでください。 OracleのドキュメントではJava.util.Calendarよりも優先されます。そのため、任意の日付を設定し、getTime()メソッドを介してDateオブジェクトをインスタンス化できます。

Calendar calendar = Calendar.getInstance();
calendar.set(2018, 11, 31, 59, 59, 59);
Date happyNewYearDate = calendar.getTime();

月番号が0から始まることに注意してください

1
Scirocco

Java.time

Java.util.Dateクラスと.Calendarクラスは、Java 8以降に組み込まれているJava.timeフレームワークに取って代わられました。新しいクラスは、途方もないの改善に触発されています成功したJoda-Timeライブラリによって。

Java.timeクラスは、オブジェクトのインスタンス化に コンストラクター ではなく静的 ファクトリーメソッド を使用する傾向があります。

UTCタイムゾーンの現在の時刻を取得するには:

Instant instant = Instant.now();

特定のタイムゾーンの現在の時刻を取得するには:

ZoneId zoneId = ZoneId.of( "America/Montreal" );
ZonedDateTime zdt = ZonedDateTime.now( zoneId );

Java.timeタイプ用にまだ更新されていない他のクラスで使用するためにJava.util.Dateが必要な場合は、Instantから変換してください。

Java.util.Date date = Java.util.Date.from( zdt.toInstant() );

Java.timeについて

Java.time フレームワークは、Java 8以降に組み込まれています。これらのクラスは、厄介な古い レガシー 日時に取って代わります Java.util.DateCalendar 、& SimpleDateFormat などのクラス。

Joda-Time プロジェクトは、現在 メンテナンスモード にあり、 Java.time クラスへの移行を推奨しています。

詳細については、 Oracleチュートリアル を参照してください。スタックオーバーフローで多くの例と説明を検索してください。仕様は JSR 31 です。

Java.timeオブジェクトをデータベースと直接交換できます。 JDBC 4.2 以降に準拠した JDBCドライバー を使用してください。文字列も、Java.sql.*クラスも必要ありません。

Java.timeクラスはどこで入手できますか?

_(ThreeTen-Extra プロジェクトは、追加のクラスでJava.timeを拡張します。このプロジェクトは、Java.timeに将来追加される可能性があることの証明の場です。 IntervalYearWeekYearQuarter 、および more

0
Basil Bourque