누구든지 SimpleDateFormat 클래스에서 사용 가능한 날짜 형식에 대해 알려줄 수 있습니까?
나는 API를 통해 만족스러운 답변을 찾지 못했습니다. 어떤 도움이라도 대단히 감사합니다.
누구든지 SimpleDateFormat 클래스에서 사용 가능한 날짜 형식에 대해 알려줄 수 있습니까?
나는 API를 통해 만족스러운 답변을 찾지 못했습니다. 어떤 도움이라도 대단히 감사합니다.
답변:
날짜 및 시간 형식은 아래에 잘 설명되어 있습니다.
SimpleDateFormat (Java Platform SE 7)-날짜 및 시간 패턴
n
만들 수있는 형식의 수가 있을 수 있습니다 . 예- dd/MM/yyyy
또는 YYYY-'W'ww-u
필요한 패턴을 얻기 위해 문자를 혼합하고 일치시킬 수 있습니다. 패턴 문자는 다음과 같습니다.
G
-시대 지정자 (AD)y
-연도 (1996; 96)Y
-주 연도 (2009, 09)M
-연도 (7 월, 7 월, 07 일)w
-연중 주 (27)W
-월의 주 (2)D
-연중 일 (189)d
-일 (10)F
-월의 요일 (2)E
-요일 이름 (화요일, 화요일)u
-요일 번호 (1 = 월요일, ..., 7 = 일요일)a
-AM / PM 마커H
-하루 중 시간 (0-23)k
-하루 중 시간 (1-24)K
-오전 / 오후 시간 (0-11)h
-오전 / 오후 시간 (1-12)m
-분 (30)s
-초 (55)S
-밀리 초 (978)z
-일반 시간대 (태평양 표준시, PST, GMT-08 : 00)Z
-RFC 822 시간대 (-0800)X
-ISO 8601 시간대 (-08, -0800, -08 : 00)구문 분석하려면 :
2000-01-23T04 : 56 : 07.000 + 0000
사용하다:
new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ");
SimpleDateFormat
생성자에서 로케일을 설정할 수 있습니다. SimpleDateFormat formatter = new SimpleDateFormat(pattern, locale);
http://www3.ntu.edu.sg/home/ehchua/programming/java/DateTimeCalendar.html 에서 얻은 몇 가지 예제 코드를 던져 보겠습니다 . 그런 다음 이해할 때까지 다양한 옵션을 사용해 볼 수 있습니다.
import java.text.SimpleDateFormat;
import java.util.Date;
public class DateTest {
public static void main(String[] args) {
Date now = new Date();
//This is just Date's toString method and doesn't involve SimpleDateFormat
System.out.println("toString(): " + now); // dow mon dd hh:mm:ss zzz yyyy
//Shows "Mon Oct 08 08:17:06 EDT 2012"
SimpleDateFormat dateFormatter = new SimpleDateFormat("E, y-M-d 'at' h:m:s a z");
System.out.println("Format 1: " + dateFormatter.format(now));
// Shows "Mon, 2012-10-8 at 8:17:6 AM EDT"
dateFormatter = new SimpleDateFormat("E yyyy.MM.dd 'at' hh:mm:ss a zzz");
System.out.println("Format 2: " + dateFormatter.format(now));
// Shows "Mon 2012.10.08 at 08:17:06 AM EDT"
dateFormatter = new SimpleDateFormat("EEEE, MMMM d, yyyy");
System.out.println("Format 3: " + dateFormatter.format(now));
// Shows "Monday, October 8, 2012"
// SimpleDateFormat can be used to control the date/time display format:
// E (day of week): 3E or fewer (in text xxx), >3E (in full text)
// M (month): M (in number), MM (in number with leading zero)
// 3M: (in text xxx), >3M: (in full text full)
// h (hour): h, hh (with leading zero)
// m (minute)
// s (second)
// a (AM/PM)
// H (hour in 0 to 23)
// z (time zone)
// (there may be more listed under the API - I didn't check)
}
}
행운을 빕니다!
최신 정보
다른 질문은 구식입니다. 이러한 끔찍한 레거시 클래스 SimpleDateFormat
는 수년 전에 현대 java.time 클래스 로 대체되었습니다 .
사용자 지정 서식 패턴을 정의하기 위해의 코드는의 코드 DateTimeFormatter
와 유사하지만 정확히 동일하지는 않습니다 SimpleDateFormat
. 문서를 반드시 공부하십시오. 그리고 많은 예제를 위해 Stack Overflow를 검색하십시오.
DateTimeFormatter f =
DateTimeFormatter.ofPattern(
"dd MMM uuuu" ,
Locale.ITALY
)
;
ISO 8601 날짜 - 시간 값의 여러 유형에 대한 표준을 정의 형식을 지원합니다. 이러한 형식은 데이터 교환을 위해 설계되었으며, 기계로 쉽게 구문 분석 할 수있을뿐만 아니라 문화 전반에 걸쳐 사람이 쉽게 읽을 수 있습니다.
java.time의 문자열을 구문 분석 / 생성 할 때 클래스는 기본적으로 ISO 8601 형식을 사용합니다. toString
& parse
메소드를 호출하기 만하면 됩니다. 형식화 패턴을 지정할 필요가 없습니다.
Instant.now().toString()
2018-11-05T18 : 19 : 33.017554Z
UTC 값의 Z
경우 끝에는 UTC를 의미하며 "Zulu"로 발음됩니다.
형식화 패턴을 지정하는 대신 java.time이 자동으로 현지화 되도록 할 수 있습니다. DateTimeFormatter.ofLocalized…
방법을 사용하십시오 .
특정 지역 (시간대)의 사람들이 사용하는 벽시계 시간으로 현재 순간을 가져옵니다.
ZoneId z = ZoneId.of( "Africa/Tunis" );
ZonedDateTime zdt = ZonedDateTime.now( z );
표준 ISO 8601 형식으로 텍스트를 현명하게 확장하여 대괄호로 묶인 시간대 이름을 추가합니다.
zdt.toString () : 2018-11-05T19 : 20 : 23.765293 + 01 : 00 [아프리카 / 튀니지]
자동 현지화 된 텍스트를 생성합니다.
Locale locale = Locale.CANADA_FRENCH;
DateTimeFormatter f = DateTimeFormatter.ofLocalizedDateTime( FormatStyle.FULL ).withLocale( locale );
String output = zdt.format( f );
출력 : lundi 5 novembre 2018 à 19:20:23 heure normale d' Europe centrale
일반적으로 하드 코딩 된 서식 패턴을 사용하는 것보다 자동 현지화하는 것이 더 좋습니다.
java.time의 프레임 워크는 나중에 자바 8에 내장되어 있습니다. 이 클래스는 까다로운 기존에 대신 기존 과 같은 날짜 - 시간의 수업을 java.util.Date
, Calendar
, SimpleDateFormat
.
자세한 내용은 Oracle Tutorial을 참조하십시오 . 그리고 많은 예제와 설명을 위해 Stack Overflow를 검색하십시오. 사양은 JSR 310 입니다.
Joda 타임 프로젝트는 지금에 유지 관리 모드 의로 마이그레이션을 조언 java.time의 클래스.
java.time 객체를 데이터베이스와 직접 교환 할 수 있습니다 . JDBC 4.2 이상을 준수 하는 JDBC 드라이버를 사용하십시오 . 문자열이나 클래스 가 필요하지 않습니다 . Hibernate 5 및 JPA 2.2는 java.time을 지원 합니다 .java.sql.*
java.time 클래스는 어디서 구할 수 있습니까?
http://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html 에서 형식을 확인 하십시오.
본관
System.out.println("date : " + new classname().getMyDate("2014-01-09 14:06", "dd-MMM-yyyy E hh:mm a z", "yyyy-MM-dd HH:mm"));
방법
public String getMyDate(String myDate, String returnFormat, String myFormat)
{
DateFormat dateFormat = new SimpleDateFormat(returnFormat);
Date date=null;
String returnValue="";
try {
date = new SimpleDateFormat(myFormat, Locale.ENGLISH).parse(myDate);
returnValue = dateFormat.format(date);
} catch (ParseException e) {
returnValue= myDate;
System.out.println("failed");
e.printStackTrace();
}
return returnValue;
}