programing

Java 날짜 형식 - 추가 문자 포함

copysource 2023. 2. 3. 23:17
반응형

Java 날짜 형식 - 추가 문자 포함

Java의 php date() 스타일 포맷과 동등한 것이 있습니까?즉, php에서는 문자를 문자 그대로 처리하기 위해 백슬래시 이스케이프를 할 수 있습니다.즉, yyyy2010년이 됩니다.자바에서는 비슷한 것을 찾을 수 없었습니다.모든 예에서는 내장 날짜 형식만 취급하고 있습니다.

특히 JCalendar 날짜 피커와 그 dateFormatString 속성을 취급하고 있습니다.

제 로케일에서는 d. after day part, m. after year part 등 모든 종류의 추가 정보를 날짜 형식으로 작성해야 하기 때문에 필요합니다.최악의 경우 string replace 또는 regexp를 사용할 수 있지만 더 간단한 방법이 있을까요?잘 부탁드립니다!

물론 SimpleDateFormat을 사용하면 리터럴 문자열을 포함할 수 있습니다.

날짜 및 시간 패턴 문자열 내에서 따옴표로 둘러싸인 'A'에서 'Z' 및 'a'에서 'z'까지의 문자를 날짜 또는 시간 문자열의 성분을 나타내는 패턴 문자로 해석한다.텍스트는 작은 따옴표(')를 사용하여 해석하지 않도록 할 수 있습니다.'''는 단일 따옴표를 나타냅니다.다른 모든 문자는 해석되지 않고 형식 지정 중에 출력 문자열로 복사되거나 구문 분석 중에 입력 문자열과 대조됩니다.

 "hh 'o''clock' a, zzzz"    12 o'clock PM, Pacific Daylight Time

완전성을 위해 Java 8의DateTimeFormatter는 다음 기능도 지원합니다.

DateTimeFormatter.ofPattern("yyyy 'year'");

java.time

마크 제로니머스가 이미 말했다.나는 그것을 조금 더 살찌우고 있다.인쇄될 텍스트를 작은 따옴표 안에 넣기만 하면 됩니다.

    DateTimeFormatter yearFormatter = DateTimeFormatter.ofPattern("yyyy 'year'");
    System.out.println(LocalDate.of(2010, Month.FEBRUARY, 3).format(yearFormatter));
    System.out.println(Year.of(2010).format(yearFormatter));
    System.out.println(ZonedDateTime.now(ZoneId.of("Europe/Vilnius")).format(yearFormatter));

방금 실행 중인 경우의 출력:

2010 year
2010 year
2019 year

를 사용하고 있는 경우DateTimeFormatterBuilder및 그appendPatternmethod, 같은 방법으로 작은따옴표를 사용합니다.또는 사용방법appendLiteral단일 따옴표는 사용하지 않고 작은 따옴표는 사용하지 않습니다.

그럼 하나의 인용문을 어떻게 형식으로 넣어야 할까요?작은 따옴표 두 개가 한 개를 만듭니다.이중 단일 따옴표가 작은 따옴표 안에 있는지 여부는 중요하지 않습니다.

    DateTimeFormatter formatterWithSingleQuote = DateTimeFormatter.ofPattern("H mm'' ss\"");
    System.out.println(LocalTime.now(ZoneId.of("Europe/London")).format(formatterWithSingleQuote));

10 28' 34"

    DateTimeFormatter formatterWithSingleQuoteInsideSingleQuotes
            = DateTimeFormatter.ofPattern("hh 'o''clock' a, zzzz", Locale.ENGLISH);
    System.out.println(ZonedDateTime.now(ZoneId.of("America/Los_Angeles"))
            .format(formatterWithSingleQuoteInsideSingleQuotes));

태평양 여름 시간 오전 2시

위의 모든 포메터를 구문 분석에도 사용할 수 있습니다.예를 들어 다음과 같습니다.

    LocalTime time = LocalTime.parse("16 43' 56\"", formatterWithSingleQuote);
    System.out.println(time);

16:43:56

SimpleDateFormat거의 10년 전에 이 질문을 받았을 때 사용된 수업은 성가신 것으로 악명 높고 오래되었다.대신 최신 Java 날짜 및 시간 API인 java.time을 사용할 것을 권장합니다.그래서 내가 그걸 증명하는 거야.

링크

String을 사용할 수 있습니다.형식을 지정합니다.포메터:

Calendar c = ...;
String s = String.format("%tY year", c);
// -> s == "2010 year" or whatever the year actually is

java.text.SimpleDateFormat(단순 날짜 형식)

SimpleDateFormat formatter = new SimpleDateFormat("yyyy/MM/dd"); 
String formattedDate = formatter.format(date);

자세한 내용은 링크텍스트를 참조해 주세요.

언급URL : https://stackoverflow.com/questions/2138085/java-date-format-including-additional-characters

반응형