Javaで現在の日付を文字列に変換するにはどうすればよいですか?
Javaで現在の日付を文字列に変換するにはどうすればよいですか?
回答:
String date = new SimpleDateFormat("dd-MM-yyyy").format(new Date());
// GET DATE & TIME IN ANY FORMAT
import java.util.Calendar;
import java.text.SimpleDateFormat;
public static final String DATE_FORMAT_NOW = "yyyy-MM-dd HH:mm:ss";
public static String now() {
Calendar cal = Calendar.getInstance();
SimpleDateFormat sdf = new SimpleDateFormat(DATE_FORMAT_NOW);
return sdf.format(cal.getTime());
}
ここから撮影
Calendar
より望ましいですDate
か?
// On the form: dow mon dd hh:mm:ss zzz yyyy
new Date().toString();
DateFormat
実装を使用します。例えばSimpleDateFormat
。
DateFormat df = new SimpleDateFormat("dd/MM/yyyy");
String data = df.format(new Date());
LocalDate.now()
.toString()
2017-01-23
望ましい/期待されるタイムゾーンを明示的に指定する方が良い。
LocalDate.now( ZoneId.of( "America/Montreal" ) )
.toString()
Java 8以降の最新の方法は、java.timeフレームワークを使用する方法です。
日付はいつでも世界中で変化するため、タイムゾーンを指定します。
ZoneId zoneId = ZoneId.of( "America/Montreal" ) ; // Or ZoneOffset.UTC or ZoneId.systemDefault()
LocalDate today = LocalDate.now( zoneId ) ;
String output = today.toString() ;
2017-01-23
デフォルトでは、標準のISO 8601形式の文字列を取得します。
他の形式の場合はjava.time.format.DateTimeFormatter
クラスを使用します。
java.timeのフレームワークは、Java 8に組み込まれており、後にされています。これらのクラスは面倒古い取って代わるレガシーのような日付時刻クラスjava.util.Date
、Calendar
&を、SimpleDateFormat
。
ジョダタイムプロジェクトは、今でメンテナンスモードへの移行をアドバイスjava.timeのクラス。
詳細については、Oracleチュートリアルを参照してください。スタックオーバーフローで多くの例と説明を検索してください。仕様はJSR 310です。
java.timeオブジェクトをデータベースと直接交換することができます。JDBC 4.2以降に準拠したJDBCドライバーを使用します。文字列もクラスも必要ありません。java.sql.*
java.timeクラスはどこで入手できますか?
ThreeTen-エクストラプロジェクトでは、追加のクラスでjava.timeを拡張します。このプロジェクトは、java.timeに将来追加される可能性があることを証明する場です。あなたはここにいくつかの有用なクラスのような見つけることがInterval
、YearWeek
、YearQuarter
、および多くを。
もっと早く :
String date = FastDateFormat.getInstance("dd-MM-yyyy").format(System.currentTimeMillis( ));
YYYY-MM-ddとしての時間
String time = new DateTime( yourData ).toString("yyyy-MM-dd");
また、DateTimeのライブラリは次のとおりです。
import org.joda.time.DateTime;
DateTime
出身ですか?このサイトはスニペットライブラリ以上のものであるため、Stack Overflowの回答にはいくつかの説明が必要です。
回答のほとんどは有効です。日付処理のための新しいJAVA APIの変更により、Java日付処理における以前のあいまいさが確実に軽減されました。
同様の呼び出しに対して非推奨のメッセージが表示されます。
new Date() // deprecated
上記の呼び出しでは、開発者は新しいDateオブジェクトが現在のタイムスタンプを持つDateオブジェクトを提供すると想定する必要がありました。この動作は、他のJava APIクラス間で一貫していません。
これを行う新しい方法は、カレンダーインスタンスを使用することです。
new SimpleDateFormat("yyyy-MM-dd").format(Calendar.getInstance().getTime()
ここでも命名規則は完全ではありませんが、これはかなり整理されています。私のような、物事を強打するのに苦労しているが、それが論理的に聞こえたり/現れたとしても、何かを決して忘れない人にとって、これは良いアプローチです。
これは実際の生活と同義です
これを行うもう1つの方法は、Joda time APIを使用することです
new DateTime().toString("yyyy-MM-dd")
またははるかに明白な
new DateTime(Calendar.getInstance().getTime()).toString("yyyy-MM-dd")
どちらも同じ結果を返します。
java.util.Date
、java.util.Calendar
とjava.text.SimpleTextFormat
今のレガシーに取って代わられ、java.timeのクラス。また、Joda -Timeプロジェクトがメンテナンスモードになり、チームはjava.timeへの移行をアドバイスしています。
Clock
Java 8 の実装はレガシークラスとまったく同じです。Java 9でのみ、ナノ秒単位の精度で現在の瞬間をキャプチャできる新しい実装が到着します。
public static Date getDateByString(String dateTime) {
if(dateTime==null || dateTime.isEmpty()) {
return null;
}
else{
String modified = dateTime + ".000+0000";
DateFormat formatter = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ");
Date dateObj = new Date();
Date dateObj1 = new Date();
try {
if (dateTime != null) {
dateObj = formatter.parse(modified);
}
} catch (ParseException e) {
e.printStackTrace();
}
return dateObj;
}
}
String
形式の日付も関数に渡すことはできません。