1시간 전 Java 날짜 변경
Java 날짜 개체가 있습니다.
Date currentDate = new Date();
그러면 현재 날짜와 시간이 표시됩니다.예:
Thu Jan 12 10:17:47 GMT 2012
대신 날짜를 1시간 전으로 변경하여 다음 정보를 얻을 수 있도록 하고 싶습니다.
Thu Jan 12 09:17:47 GMT 2012
어떻게 하면 좋을까요?
java.displaces를 클릭합니다.캘린더
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.displaces를 클릭합니다.날짜.
new Date(System.currentTimeMillis() - 3600 * 1000);
org.joda.time 입니다.Local Date Time(로컬 날짜 시간)
new LocalDateTime().minusHours(1)
Java 8: java.time.Local Date Time(로컬 날짜 시간)
LocalDateTime.now().minusHours(1)
Java 8 java.time.즉시
// 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));
dr;dr
UTC:
Instant.now().minus( 1 , ChronoUnit.HOURS )
또는 구역화:
Instant.now()
.atZone( ZoneId.of ( "America/Montreal" ) )
.minusHours( 1 )
java.time 사용
Java 8 이후에는 새로운 java.time 프레임워크가 내장되어 있습니다.
Instant
UTC(GMT)에만 관심이 있는 경우 클래스를 사용합니다.
Instant instant = Instant.now ();
Instant instantHourEarlier = instant.minus ( 1 , ChronoUnit.HOURS );
콘솔에 덤프합니다.
System.out.println ( "instant: " + instant + " | instantHourEarlier: " + instantHourEarlier );
즉석: 2015-10-29T00:37:48.921Z | 인스턴트시간 전: 2015-10-28T23:37:48.921Z
이 순간에 어제 날짜로 건너뛰게 된 것에 주목해 주세요.
ZonedDateTime
표준 시간대가 필요한 경우 클래스를 사용하십시오.Instant로 시작하여는 표준 시간대(개체)를 할당할 수 있습니다.이 클래스는 Daylight Saving Time(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[미국/몬트리올]
zdtHourEar: 2015-10-28T 19:50:30.778-04:00[미국/몬트리올]
변환
오래된 java.util.Date/.Calendar 클래스가 구식입니다.그들을 피하세요.그들은 귀찮고 혼란스럽기로 악명 높다.
java.time 유형에 대해 아직 업데이트되지 않은 오래된 코드로 동작하기 위해 오래된 클래스를 사용해야 할 경우 변환 메서드를 호출합니다.다음은 Instant 또는 ZonedDateTime에서 java.util로 이동하는 코드 예입니다.날짜.
java.util.Date date = java.util.Date.from( instant );
…혹은…
java.util.Date date = java.util.Date.from( zdt.toInstant() );
java.time 정보
java.time 프레임워크는 Java 8 이후에 포함되어 있습니다.이러한 클래스는 , 및 등 문제가 많은 오래된 레거시 날짜 시간 클래스를 대체합니다.
현재 유지보수 모드에 있는 조다 타임 프로젝트는 java.time 클래스로의 이행을 권장합니다.
자세한 내용은 Oracle 자습서를 참조하십시오.또한 Stack Overflow를 검색하여 많은 예와 설명을 확인하십시오.사양은 JSR 310입니다.
java.time 객체를 데이터베이스와 직접 교환할 수 있습니다.JDBC 4.2 이후에 준거한JDBC 드라이버를 사용합니다.스트링도 필요 없고java.sql.*반.
java.time 클래스는 어디서 얻을 수 있습니까?
- 자바 SE 8, 자바 SE 9, 자바 SE 10, 자바 SE 11 및 이후 - 표준 Java API의 일부이며 번들 구현이 포함되어 있습니다.
- Java 9에는 몇 가지 사소한 기능과 수정 사항이 추가되어 있습니다.
- 자바 SE 6 및 자바 SE 7
- java.time 기능의 대부분은 ThreeTen 백포트의 Java 6 및7로 백포트됩니다.
- 안드로이드
- 최신 버전의 Android 번들 구현 java.time 클래스.
- 이전의 Android(<26)에서는 쓰리텐ABP 프로젝트가 ThreeTen-Backport(상기)를 채택하고 있습니다.'쓰리텐ABP 사용방법'을 참조하십시오.
쓰리텐 엑스트라 프로젝트는 java.time을 추가 클래스로 확장합니다.이 프로젝트는 향후 java.time에 추가될 수 있는 가능성을 입증하는 기반입니다.여기에는 , , , 등 유용한 클래스가 있습니다.
캘린더를 사용합니다.
Calendar cal = Calendar.getInstance();
cal.setTime(new Date());
cal.set(Calendar.HOUR, cal.get(Calendar.HOUR) - 1);
또는 유명한 Joda Time 라이브러리를 사용하는 경우:
DateTime dateTime = new DateTime();
dateTime = dateTime.minusHours(1);
Date modifiedDate = dateTime.toDate();
날짜에서 한 시간 동안의 밀리초 수를 빼면 됩니다.
currentDate.setTime(currentDate.getTime() - 3600 * 1000));
날짜 및 시간에 대해 Bellow Code에서 사용할 수 있습니다.
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");
할 수 방법은 것, 음, 음, 음, 음, 음, 다, 다, 습, 습, this, this, this, this, this, this, this, this을 사용해서.java.util.Date다음 코드는 당신의 데이트에서 1시간을 빼줍니다.
Date date = new Date(yourdate in date format);
Date newDate = DateUtils.addHours(date, -1)
데이트에서 20초를 빼는 경우도 마찬가지입니다.
newDate = DateUtils.addSeconds(date, -20)
' 빼기'를해야 합니다.HOUR_OF_DAY로 된 .그 안에 음수 기호가 있는 숫자를 넣으세요.이 시간을 줄이고자 하는 경우입니다. 것은 .add()★★★★★★ 。
다음은 예를 제시하겠습니다.
import java.util.Calendar;
public class Example {
public static void main(String[] args) {
Calendar c = Calendar.getInstance();
System.out.println("Date : " + c.getTime());
// 2 hours subtracted
c.add(Calendar.HOUR_OF_DAY, -2);
System.out.println("After subtracting 2 hrs : " + c.getTime());
}
}
출력은 다음과 같습니다.
Date : Sun Dec 16 16:28:53 UTC 2018
After subtracting 2 hrs : Sun Dec 16 14:28:53 UTC 2018
시간(밀리초)에서 분(밀리초)을 뺀 값을 가져와 날짜로 변환합니다.여기서 하나를 객관화해야 합니다!!!
int minutes = 60;
long currentDateTime = System.currentTimeMillis();
Date currentDate = new Date(currentDateTime - minutes*60*1000);
System.out.println(currentDate);
포맷을 사용하는 대신 작동했습니다.시간 처리를 위해서는 parse 메서드와 toString() 메서드를 사용합니다.
문자열 localTime="6:11"; LocalTime localTime = LocalTime.parse(로컬시간)
Local Time lt = 6:11, local Time = lt.toString()
언급URL : https://stackoverflow.com/questions/8833399/changing-java-date-one-hour-back
'programing' 카테고리의 다른 글
| 작업 전 VueJS 프로세스 완료 템플릿 (0) | 2022.07.26 |
|---|---|
| Nuxt 프로젝트에서 커스텀 Vue 믹스인과 도우미 기능을 어디에 배치할 수 있습니까? (0) | 2022.07.26 |
| printf 패밀리를 사용하여 size_t 변수를 포터블하게 인쇄하려면 어떻게 해야 합니까? (0) | 2022.07.26 |
| system() 명령에서 stdout을 최적으로 캡처하다 (0) | 2022.07.26 |
| Vue 플러그인 내에서 마운트 또는 생성된 호출 방법을 선택하십시오. (0) | 2022.07.26 |