>

그루비를 사용하여 날짜 문자열을 구문 분석하려고하지만 문제가 발생합니다. 다음은 문자열의 모양과 작동하지 않는 논리입니다.

def dateString = "2017-01-01T12:00:00Z"
def date = Date.parse("yyyy-MM-dd HH:mm:ss", dateString)

도 시도했습니다

def date = Date.parse("yyyy-MM-dd'T'HH:mm:ssZ", dateString)

어느 것도 파싱하지 않는

. 어떤 도움이라도 가장 감사하겠습니다.

도움을 주셔서 감사합니다.

  • 답변 # 1

    다음 형식을 시도해보십시오 : yyyy-MM-dd'T'HH:mm:ssX

    실행 스크립트 :

    def dateString = "2017-01-01T12:00:00Z"
    def date = Date.parse("yyyy-MM-dd'T'HH:mm:ssX", dateString)
    println date
    
    

    다음 출력을 생성합니다 :

    Sun Jan 01 13:00:00 CET 2017
    
    

    와이즈 비즈 비교   yyyy-MM-dd'T'HH:mm:ss'Z'

    구문 분석 할 날짜의 시간대 오프셋 지원을 고려해야합니다. 현재 시간대가 Europe/Warsaw으로 설정된 상태에서 다음 스크립트 실행을 확인하십시오.

    yyyy-MM-dd'T'HH:mm:ssX
    
    

    두 가지 결과가 나옵니다 :

    println Date.parse("yyyy-MM-dd'T'HH:mm:ss'Z'", dateString)
    println Date.parse("yyyy-MM-dd'T'HH:mm:ssX", dateString)
    
    

    첫 번째는 Sun Jan 01 12:00:00 CET 2017 Sun Jan 01 13:00:00 CET 2017 를 다룬다  리터럴로서 현재 시간대를 사용하여 주어진 날짜와 시간을 구문 분석합니다. 다른 현재 시간대 세트를 사용하여이 스크립트를 실행하면 다시 Z 가 표시됩니다.  이 시간대에.

    두 번째는 시간대 정보를 고려하여 12:00:00 를 처리합니다.  문자 그대로가 아니라 Z 로  시간대 표기법. 내 시간대의 경우 정확한 시간은 GMT/UTC 입니다.   13:00:00 가 아니라 .

    첫 번째 형식에도 다른 문제가 있습니다. 12:00:00 와 같은 날짜를 받기 시작하면  첫 번째 패턴을 사용하면 다음과 같은 예외가 발생합니다.

    2017-01-01T12:00:00+0400
    
    

    Caught: java.text.ParseException: Unparseable date: "2017-01-01T12:00:00+0400" java.text.ParseException: Unparseable date: "2017-01-01T12:00:00+0400" at avg.run(avg.groovy:35) 주어진 두 번째 구문 분석  문제없이 명시 적으로 표준 시간대 오프셋을 사용하여 인쇄 :

    dateString
    
    

    현재 시간대의 정확한 날짜와 시간입니다.

    도움이 되길 바랍니다.

    Sun Jan 01 09:00:00 CET 2017

  • 이전 하이브에서 종료와 종료의 차이점은 무엇입니까
  • 다음 python - 버튼이 작동하지 않는 Tkinter 명령