回答:
java.util.Calendar
Calendar cal = Calendar.getInstance();
// remove next line if you're always using the current time.
cal.setTime(currentDate);
cal.add(Calendar.HOUR, -1);
Date oneHourBack = cal.getTime();
java.util.Date
new Date(System.currentTimeMillis() - 3600 * 1000);
org.joda.time.LocalDateTime
new LocalDateTime().minusHours(1)
Java 8:java.time.LocalDateTime
LocalDateTime.now().minusHours(1)
Java 8 java.time.Instant
// always in UTC if not timezone set
Instant.now().minus(1, ChronoUnit.HOURS));
// with timezone, Europe/Berlin for example
Instant.now()
.atZone(ZoneId.of("Europe/Berlin"))
.minusHours(1));
@Sumit Jainのソリューションに似ています
Date currentDate = new Date(System.currentTimeMillis() - 3600 * 1000);
または
Date currentDate = new Date(System.currentTimeMillis() - TimeUnit.HOURS.toMillis(1));
Date currentDate = new Date(System.currentTimeMillis() - TimeUnit.MINUTES.toMillis(10));
10分遅れる?
ではUTC:
Instant.now().minus( 1 , ChronoUnit.HOURS )
または、ゾーン:
Instant.now()
.atZone( ZoneId.of ( "America/Montreal" ) )
.minusHours( 1 )
Java 8以降には、新しいjava.timeフレームワークが組み込まれています。
Instant
UTC(GMT)のみに関心がある場合は、Instant
クラスを使用してください。
Instant instant = Instant.now ();
Instant instantHourEarlier = instant.minus ( 1 , ChronoUnit.HOURS );
コンソールにダンプします。
System.out.println ( "instant: " + instant + " | instantHourEarlier: " + instantHourEarlier );
インスタント:2015-10-29T00:37:48.921Z | instantHourEarlier:2015-10-28T23:37:48.921Z
この瞬間に昨日の日付にスキップしてしまったことに注意してください。
ZonedDateTime
タイムゾーンが気になる場合は、ZonedDateTime
クラスを使用してください。インスタントから始めて、タイムゾーン、ZoneId
オブジェクトを割り当てることができます。このクラスは、夏時間(DST)などの異常に必要な調整を処理します。
Instant instant = Instant.now ();
ZoneId zoneId = ZoneId.of ( "America/Montreal" );
ZonedDateTime zdt = ZonedDateTime.ofInstant ( instant , zoneId );
ZonedDateTime zdtHourEarlier = zdt.minus ( 1 , ChronoUnit.HOURS );
コンソールにダンプします。
System.out.println ( "instant: " + instant + "\nzdt: " + zdt + "\nzdtHourEarlier: " + zdtHourEarlier );
インスタント:2015-10-29T00:50:30.778Z
zdt:2015-10-28T20:50:30.778-04:00 [アメリカ/モントリオール]
zdtHourEarlier:2015-10-28T19:50:30.778-04:00 [アメリカ/モントリオール]
古いjava.util.Date/.Calendarクラスは廃止されました。それらを避けてください。彼らは悪名高いほど面倒で混乱しています。
java.timeタイプ用にまだ更新されていない古いコードで操作するために古いクラスを使用する必要がある場合は、変換メソッドを呼び出します。以下は、InstantまたはZonedDateTimeからjava.util.Dateへのコード例です。
java.util.Date date = java.util.Date.from( instant );
…または…
java.util.Date date = java.util.Date.from( zdt.toInstant() );
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
、および多くを。
日付から1時間のミリ秒数を引くだけです。
currentDate.setTime(currentDate.getTime() - 3600 * 1000));
日付と時刻には次のコードを使用できます。
DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
//get current date time with Calendar()
Calendar cal = Calendar.getInstance();
System.out.println("Current Date Time : " + dateFormat.format(cal.getTime()));
cal.add(Calendar.DATE, 1);
System.out.println("Add one day to current date : " + dateFormat.format(cal.getTime()));
cal = Calendar.getInstance();
cal.add(Calendar.MONTH, 1);
System.out.println("Add one month to current date : " + dateFormat.format(cal.getTime()));
cal = Calendar.getInstance();
cal.add(Calendar.YEAR, 1);
System.out.println("Add one year to current date : " + dateFormat.format(cal.getTime()));
cal = Calendar.getInstance();
cal.add(Calendar.HOUR, 1);
System.out.println("Add one hour to current date : " + dateFormat.format(cal.getTime()));
cal = Calendar.getInstance();
cal.add(Calendar.MINUTE, 1);
System.out.println("Add one minute to current date : " + dateFormat.format(cal.getTime()));
cal = Calendar.getInstance();
cal.add(Calendar.SECOND, 1);
System.out.println("Add one second to current date : " + dateFormat.format(cal.getTime()));
cal = Calendar.getInstance();
cal.add(Calendar.DATE, -1);
System.out.println("Subtract one day from current date : " + dateFormat.format(cal.getTime()));
cal = Calendar.getInstance();
cal.add(Calendar.MONTH, -1);
System.out.println("Subtract one month from current date : " + dateFormat.format(cal.getTime()));
cal = Calendar.getInstance();
cal.add(Calendar.YEAR, -1);
System.out.println("Subtract one year from current date : " + dateFormat.format(cal.getTime()));
cal = Calendar.getInstance();
cal.add(Calendar.HOUR, -1);
System.out.println("Subtract one hour from current date : " + dateFormat.format(cal.getTime()));
cal = Calendar.getInstance();
cal.add(Calendar.MINUTE, -1);
System.out.println("Subtract one minute from current date : " + dateFormat.format(cal.getTime()));
cal = Calendar.getInstance();
cal.add(Calendar.SECOND, -1);
System.out.println("Subtract one second from current date : " + dateFormat.format(cal.getTime()));
出力:
Current Date Time : 2008/12/28 10:24:53
Add one day to current date : 2008/12/29 10:24:53
Add one month to current date : 2009/01/28 10:24:53
Add one year to current date : 2009/12/28 10:24:53
Add one hour to current date : 2008/12/28 11:24:53
Add one minute to current date : 2008/12/28 10:25:53
Add one second to current date : 2008/12/28 10:24:54
Subtract one day from current date : 2008/12/27 10:24:53
Subtract one month from current date : 2008/11/28 10:24:53
Subtract one year from current date : 2007/12/28 10:24:53
Subtract one hour from current date : 2008/12/28 09:24:53
Subtract one minute from current date : 2008/12/28 10:23:53
Subtract one second from current date : 2008/12/28 10:24:52
このリンクは良いです:ここを参照してください
そして:ここに
そして:ここに
そして:ここに
あなただけの時間が必要な場合:
DateFormat dateFormat = new SimpleDateFormat("HH:mm:ss");
ミリ秒単位の時間からミリ秒単位の分を引いて、それを日付に変換します。ここであなたはそれを具体化する必要があります!!!
int minutes = 60;
long currentDateTime = System.currentTimeMillis();
Date currentDate = new Date(currentDateTime - minutes*60*1000);
System.out.println(currentDate);
代わりにformatを使用しました。時間を操作するには、parseおよびtoString()メソッドを使用するだけです
String localTime = "6:11"; LocalTime localTime = LocalTime.parse(localtime)
LocalTime lt = 6:11; localTime = lt.toString()
mktime
Java には同等のものはありますか?それから60分を差し引きますか?