Java: 날짜에서 월 정수 가져오기
Date 개체에서 달을 정수로 가져오려면 어떻게 해야 합니까?java.util.Date
)?
java.util.Date date= new Date();
Calendar cal = Calendar.getInstance();
cal.setTime(date);
int month = cal.get(Calendar.MONTH);
java.time(Java 8)
Java 8에서 java.time 패키지를 사용하여 객체를 객체로 변환한 후 메서드를 사용할 수도 있습니다.
Date date = new Date();
LocalDate localDate = date.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
int month = localDate.getMonthValue();
여기에서는 월 값이 1 ~12로 지정되어 있는 것에 주의:cal.get(Calendar.MONTH)
0부터 11까지의 값을 제공하는 아다쉬의 답변에서.
그러나 Basil Bourque가 코멘트에서 말한 것처럼, 바람직한 방법은 메서드로 열거 객체를 얻는 것입니다.
Java 8 date api를 사용하면 한 줄로 바로 얻을 수 있습니다!
LocalDate today = LocalDate.now();
int month = today.getMonthValue();
조다 타임
또는 Joda-Time 클래스에서 사용할 수도 있습니다.
//convert date to datetime
DateTime datetime = new DateTime(date);
int month = Integer.parseInt(datetime.toString("MM"))
…혹은…
int month = dateTime.getMonthOfYear();
dr;dr
myUtilDate.toInstant() // Convert from legacy class to modern. `Instant` is a point on the timeline in UTC.
.atZone( // Adjust from UTC to a particular time zone to determine date. Renders a `ZonedDateTime` object.
ZoneId.of( "America/Montreal" ) // Better to specify desired/expected zone explicitly than rely implicitly on the JVM’s current default time zone.
) // Returns a `ZonedDateTime` object.
.getMonthValue() // Extract a month number. Returns a `int` number.
java.time
세부 사항
java.time 사용에 대한 Ortomala Lokni의 답변은 정확합니다.또한 java.time은 기존 java.util보다 대폭 개선되었기 때문에 사용해야 합니다.Date/.Calendar 클래스java.time에 대한 Oracle 튜토리얼을 참조하십시오.
java.util에 관계없이 java.time을 사용하는 방법을 나타내는 코드를 추가합니다.날짜: 새로운 코드로 시작하는 날짜입니다.
java.time을 간단히 말하면...는 UTC로 타임라인상의 순간입니다.표준 ZoneId
시간대()를 적용하여를 가져옵니다.
클래스는 일반적으로 한 달을 나타내는 정교한 열거형입니다.이 열거형에는 현지화된 이름을 가져오는 등의 편리한 방법이 있습니다.java.time의 월 번호는 java.util에서 볼 수 있는 제로 베이스의 난센스(0-11)가 아니라 1-12의 정상적인 숫자입니다.날짜/. 캘린더
현재의 날짜 시각을 취득하려면 , 타임 존이 중요합니다.어느 순간이나 그 날짜는 전 세계에서 같지 않다.따라서 월의 종료/개시가 가까워지면 전 세계에서 월이 동일하지 않습니다.
ZoneId zoneId = ZoneId.of( "America/Montreal" ); // Or 'ZoneOffset.UTC'.
ZonedDateTime now = ZonedDateTime.now( zoneId );
Month month = now.getMonth();
int monthNumber = month.getValue(); // Answer to the Question.
String monthName = month.getDisplayName( TextStyle.FULL , Locale.CANADA_FRENCH );
java.time 정보
java.time 프레임워크는 Java 8 이후에 포함되어 있습니다.이러한 클래스는 , 및 등 문제가 많은 오래된 레거시 날짜 시간 클래스를 대체합니다.
현재 유지보수 모드에 있는 조다 타임 프로젝트는 java.time 클래스로의 이행을 권장합니다.
자세한 내용은 Oracle 자습서를 참조하십시오.또한 Stack Overflow를 검색하여 많은 예와 설명을 확인하십시오.사양은 JSR 310입니다.
java.time 객체를 데이터베이스와 직접 교환할 수 있습니다.JDBC 4.2 이후에 준거한JDBC 드라이버를 사용합니다.스트링도 필요 없고java.sql.*
②.
java.time 클래스는 어디서 얻을 수 있습니까?
- Java SE 8, Java SE 9, Java SE 10 이후
- 붙박이.
- 번들 구현이 포함된 표준 Java API의 일부입니다.
- Java 9에는 몇 가지 사소한 기능과 수정 사항이 추가되어 있습니다.
- Java SE 6 및 Java SE 7
- java.time 기능의 대부분은 ThreeTen 백포트의 Java 6 및7로 백포트됩니다.
- 안드로이드
- 최신 버전의 Android 번들 구현 java.time 클래스.
- 이전의 Android(<26)에서는 쓰리텐ABP 프로젝트가 ThreeTen-Backport(상기)를 채택하고 있습니다.'쓰리텐ABP 사용방법'을 참조하십시오.
쓰리텐 엑스트라 프로젝트는 java.time을 추가 클래스로 확장합니다.이 프로젝트는 향후 java.time에 추가될 수 있는 가능성을 입증하는 기반입니다.여기에는 , , , 등 유용한 클래스가 있습니다.
Joda time을 사용할 수 없고 여전히 어두운 세계에 살고 있다면 :) (Java 5 이하)를 즐길 수 있습니다.
주의: 날짜가 모두 dd/MM/YYY 형식으로 작성되었는지 확인하십시오.
/**
Make an int Month from a date
*/
public static int getMonthInt(Date date) {
SimpleDateFormat dateFormat = new SimpleDateFormat("MM");
return Integer.parseInt(dateFormat.format(date));
}
/**
Make an int Year from a date
*/
public static int getYearInt(Date date) {
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy");
return Integer.parseInt(dateFormat.format(date));
}
Date mDate = new Date(System.currentTimeMillis());
mDate.getMonth() + 1
반환되는 값은 0부터 시작되므로 결과에 1을 추가해야 합니다.
언급URL : https://stackoverflow.com/questions/7182996/java-get-month-integer-from-date
'programing' 카테고리의 다른 글
Java에서 스레드를 올바르게 중지하려면 어떻게 해야 합니다. (0) | 2022.07.02 |
---|---|
vue 2에서 구성 요소의 루트 요소에 대한 이벤트를 테스트하는 방법 (0) | 2022.07.02 |
Vue setup() 메서드로 Vuex 스토어에 액세스하는 방법 (0) | 2022.07.02 |
Electron-Vue 응용 프로그램의 상태는 어디에 저장됩니까? (0) | 2022.07.02 |
2바이트 어레이를 쉽게 연결하는 방법 (0) | 2022.07.02 |