Joda Time 라이브러리를 사용하여 날짜 문자열을 DateTime 개체로 변환
다음 형식의 문자열로 날짜가 있습니다."04/02/2011 20:27:05"
Joda-Time 라이브러리를 사용 중인데 변환하고 싶습니다.DateTime
물건.나는 했다:
DateTime dt = new DateTime("04/02/2011 20:27:05")
하지만 다음 오류가 나타납니다.
Invalid format: "04/02/2011 14:42:17" is malformed at "/02/2011 14:42:17"
위의 날짜를 로 변환하는 방법DateTime
오브젝트?
사용방법:
DateTimeFormatter formatter = DateTimeFormat.forPattern("dd/MM/yyyy HH:mm:ss");
DateTime dt = formatter.parseDateTime(string);
오래된 질문인 것은 알지만 JodaTime 2.0부터는 원라이너로 이 작업을 수행할 수 있습니다.
DateTime date = DateTime.parse("04/02/2011 20:27:05",
DateTimeFormat.forPattern("dd/MM/yyyy HH:mm:ss"));
DateTimeFormat.forPattern("dd/MM/yyyy HH:mm:ss").parseDateTime("04/02/2011 20:27:05");
댓글에서 Time Zone과 같은 답변을 골랐습니다.
String dateTime = "2015-07-18T13:32:56.971-0400";
DateTimeFormatter formatter = DateTimeFormat.forPattern("yyyy-MM-dd'T'HH:mm:ss.SSSZZ")
.withLocale(Locale.ROOT)
.withChronology(ISOChronology.getInstanceUTC());
DateTime dt = formatter.parseDateTime(dateTime);
형식이 예상된 ISO 형식이 아닙니다. 시도해 보십시오.
DateTimeFormatter format = DateTimeFormat.forPattern("dd/MM/yyyy HH:mm:ss");
DateTime time = format.parseDateTime("04/02/2011 20:27:05");
SimpleDateFormat을 사용할 수도 있습니다.DateTimeFormat
Date startDate = null;
Date endDate = null;
try {
if (validDateStart!= null) startDate = new SimpleDateFormat("MM/dd/yyyy HH:mm", Locale.ENGLISH).parse(validDateStart + " " + validDateStartTime);
if (validDateEnd!= null) endDate = new SimpleDateFormat("MM/dd/yyyy HH:mm", Locale.ENGLISH).parse(validDateEnd + " " + validDateEndTime);
} catch (ParseException e) {
e.printStackTrace();
}
dr;dr
java.time.LocalDateTime.parse(
"04/02/2011 20:27:05" ,
DateTimeFormatter.ofPattern( "dd/MM/uuuu HH:mm:ss" )
)
java.time
현대적 접근법은 오래된 Joda-Time 프로젝트를 대체하는 java.time 클래스를 사용합니다.
입력에 타임존 또는 UTC로부터의 오프셋인디케이터가 없는 경우의 해석.
String input = "04/02/2011 20:27:05" ;
DateTimeFormatter f = DateTimeFormatter.ofPattern( "dd/MM/uuuu HH:mm:ss" ) ;
LocalDateTime ldt = LocalDateTime.parse( input , f ) ;
ldt.toString(): 2011-02-04T20:27:05
힌트: 가능한 경우 표준 ISO 8601 형식을 사용하여 날짜-시간 값을 텍스트로 교환하십시오.java.time 클래스는 문자열을 해석/생성할 때 표준 형식을 사용합니다.
java.time 정보
java.time 프레임워크는 Java 8 이후에 포함되어 있습니다.이러한 클래스는 , 및 등 문제가 많은 오래된 레거시 날짜 시간 클래스를 대체합니다.
현재 유지보수 모드에 있는 Joda-Time 프로젝트는 java.time 클래스로의 이행을 권장합니다.
자세한 내용은 Oracle 자습서를 참조하십시오.또한 Stack Overflow를 검색하여 많은 예와 설명을 확인하십시오.사양은 JSR 310입니다.
java.time 클래스는 어디서 얻을 수 있습니까?
- Java SE 8, Java SE 9 이후
- 붙박이.
- 번들 구현이 포함된 표준 Java API의 일부입니다.
- Java 9에는 몇 가지 사소한 기능과 수정 사항이 추가되어 있습니다.
- Java SE 6 및 Java SE 7
- java.time 기능의 대부분은 ThreeTen 백포트의 Java 6 및7로 백포트됩니다.
- 안드로이드
- 쓰리텐ABP 프로젝트는 특히 ThreeTen-Backport(상기)를 Android용으로 채택하고 있습니다.
- '쓰리텐ABP 사용방법'을 참조하십시오.
쓰리텐 엑스트라 프로젝트는 java.time을 추가 클래스로 확장합니다.이 프로젝트는 향후 java.time에 추가될 수 있는 가능성을 입증하는 기반입니다.여기에는 , , , 등 유용한 클래스가 있습니다.
사용 중인 형식에 적합한 DateTimeFormatter가 필요합니다.빌드 방법에 대해서는 문서를 참조해 주십시오.
에서 ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★format = DateTimeFormat.forPattern("M/d/y H:m:s")
간단한 방법:
public static DateTime transfStringToDateTime(String dateParam, Session session) throws NotesException {
DateTime dateRetour;
dateRetour = session.createDateTime(dateParam);
return dateRetour;
}
이것이 달성될 수 있는 두 가지 방법이 있다.
Date Time Format
DateTimeFormat.forPattern("dd/MM/yyyy HH:mm:ss").parseDateTime("04/02/2011 20:27:05");
SimpleDateFormat(단순 날짜 형식)
String dateValue = "04/02/2011 20:27:05";
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss"); // 04/02/2011 20:27:05
Date date = sdf.parse(dateValue); // returns date object
System.out.println(date); // outputs: Fri Feb 04 20:27:05 IST 2011
언급URL : https://stackoverflow.com/questions/6252678/converting-a-date-string-to-a-datetime-object-using-joda-time-library
'IT이야기' 카테고리의 다른 글
오래된 요소 참조: 요소가 페이지 문서에 연결되어 있지 않습니다. (0) | 2022.07.03 |
---|---|
GDB의 어레이와 같은 포인터를 표시하는 방법 (0) | 2022.07.03 |
새로운 소재 테마에서 백 화살표의 색상을 변경하는 방법은 무엇입니까? (0) | 2022.07.03 |
자바 화면 해상도를 얻으려면 어떻게 해야 하나요? (0) | 2022.07.03 |
타이프 스크립트에 필요한 매개 변수(선택 사항) (0) | 2022.07.03 |