Groovy: даты не рассчитываются правильно? Использование TimeCategory - PullRequest
0 голосов
/ 20 ноября 2010

Может кто-нибудь сказать мне, почему они не рассчитываются правильно. Я пытаюсь добавить 1 секунду ко времени, и кажется, что я добавляю 60 миллисекунд, когда я применяю форматирование?

    import java.text.*
    import java.util.*
    import groovy.time.TimeCategory

    def xmlSlurper = new groovy.util.XmlSlurper()  

    // Get the previous total for number of journals
    def journalCountProp = testRunner.testCase.getTestStepByName("Properties")
    def journalCountTotal = journalCountProp.getPropertyValue( "journalCount" )
    log.info " 1. Previous JournalCount from last run: "+journalCountTotal

    def lastDateProp = testRunner.testCase.getTestStepByName("Properties")
    def lastDateHolder = lastDateProp.getPropertyValue( "journalQueryDate" )
    log.info " 2. Previous lastDate from last run: "+lastDateHolder 

    // Get the response for a given timeline
    def response = xmlSlurper.parseText(context.expand('${GET Journal using JournalDate#Response}'));
    def currentJournalCount = response.Journals.Journal.size()
    log.info " 3. Number of Journals in this Run: "+currentJournalCount

    //Getting the date from the last Journal (including an offset as the array count starts at 0)
    def lastDate = response.Journals.Journal[currentJournalCount-1].CreatedDateUTC
    log.info " 4. CreatedDate from last journal in this response: "+lastDate

    //log.info response.Journals.Journal[currentJournalCount-1].CreatedDateUTC

    def newdate = Date.parse("yyyy-MM-dd'T'HH:mm:ss.mmm",lastDate.toString())
    log.info "dateBeforeChange: "+newdate.format("yyyy-MM-dd'T'HH:mm:ss.mmm")
    use(TimeCategory){
     newdate = newdate+1.seconds
    }

    log.info "date After Change: "+newdate.format("yyyy-MM-dd'T'hh:mm:ss.mmm")
    log.info " 5. "+newdate.format("yyyy-MM-dd'T'HH:ss:mmm")

ВЫВОД:

Дата создания из последнего журнала в этом ответе: 2007-03-29T23: 19: 52.073
dateBeforeChange: 2007-03-30T00: 13: 52.013
дата после изменения: 2007-03-30T12: 13: 53.013

Не могу понять? !!

Cheers, - Ричард

1 Ответ

0 голосов
/ 20 ноября 2010

HH означает «час в день (0-23)», тогда как hh означает «час в час / час (1-12)».
См. SimpleDateFormat ApiDoc для справки (SimpleDateFormat используется под крышкой).

...