Datetime 将日期解析为";yyyy-MM-dd';T';00:00:00“;使用Groovy
我试图将日期格式“2017-12-18T20:41:06.136Z”解析为“2017-12-18'T'00:00:00” 显示错误: java.text.ParseException:不可解析日期:“2017-12-18T20:46:06:234Z”第16行错误 这一行给出了错误:Datetime 将日期解析为";yyyy-MM-dd';T';00:00:00“;使用Groovy,datetime,groovy,soapui,datetime-format,Datetime,Groovy,Soapui,Datetime Format,我试图将日期格式“2017-12-18T20:41:06.136Z”解析为“2017-12-18'T'00:00:00” 显示错误: java.text.ParseException:不可解析日期:“2017-12-18T20:46:06:234Z”第16行错误 这一行给出了错误: date1 = new SimpleDateFormat("yyyy-MM-dd'T'00:00:00").parse(currentDate) 如果只需要解析部分日期,请使用以下语法: Date.parse("
date1 = new SimpleDateFormat("yyyy-MM-dd'T'00:00:00").parse(currentDate)
如果只需要解析部分日期,请使用以下语法:
Date.parse("yyyy-MM-dd'T'HH:mm:ss",'2017-12-18T16:05:58bla-bla')
如果只需要解析部分日期,请使用以下语法:
Date.parse("yyyy-MM-dd'T'HH:mm:ss",'2017-12-18T16:05:58bla-bla')
为了避免上述错误,请使用下面的语句
Date.parse(..)
:
您应该能够实现您正试图使用下面的脚本
//Change timezone if needed
def tz = 'IST'
TimeZone.setDefault(TimeZone.getTimeZone(tz))
def dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"
def dateString = "2017-12-18T20:41:06.136Z"
Calendar calendar = Calendar.getInstance()
calendar.with {
time = Date.parse(dateFormat,dateString)
set(Calendar.HOUR_OF_DAY, 0)
set(Calendar.MINUTE, 0)
set(Calendar.SECOND, 0)
set(Calendar.MILLISECOND, 0)
}
log.info calendar.time.format(dateFormat)
您可以快速在线尝试相同的方法为了避免出现上述错误,请使用下面的语句
Date.parse(…)
:
您应该能够实现您正试图使用下面的脚本
//Change timezone if needed
def tz = 'IST'
TimeZone.setDefault(TimeZone.getTimeZone(tz))
def dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"
def dateString = "2017-12-18T20:41:06.136Z"
Calendar calendar = Calendar.getInstance()
calendar.with {
time = Date.parse(dateFormat,dateString)
set(Calendar.HOUR_OF_DAY, 0)
set(Calendar.MINUTE, 0)
set(Calendar.SECOND, 0)
set(Calendar.MILLISECOND, 0)
}
log.info calendar.time.format(dateFormat)
您可以快速在线尝试相同的方法,在Java 8上运行Groovy可以让您访问更好的日期/时间类。。。您只需执行以下操作:
import java.time.ZonedDateTime
import java.time.format.DateTimeFormatter
import java.time.temporal.ChronoUnit
String result = ZonedDateTime.parse("2017-12-18T20:41:06.136Z")
.truncatedTo(ChronoUnit.DAYS)
.format(DateTimeFormatter.ISO_LOCAL_DATE_TIME)
在Java8上运行Groovy可以让您访问更好的日期/时间类。。。您只需执行以下操作:
import java.time.ZonedDateTime
import java.time.format.DateTimeFormatter
import java.time.temporal.ChronoUnit
String result = ZonedDateTime.parse("2017-12-18T20:41:06.136Z")
.truncatedTo(ChronoUnit.DAYS)
.format(DateTimeFormatter.ISO_LOCAL_DATE_TIME)
您在Java 8上运行吗?@tim_-yates是的…这与Java版本有关。@rAJ,请查看下面的解决方案是否有助于解决此问题。否,但Java 8的日期类比Java util date好得多您在Java 8上运行吗?@tim_-yates是的…这与Java版本有关。@rAJ,请查看下面的解决方案是否有助于解决此问题。否,但是Java8的日期类比JavaUtilDatePerfect好得多。谢谢:)仅供参考:这段代码使用了麻烦的旧日期时间类,这些类现在是遗留的,完全被现代的java.time类所取代。看,太好了。谢谢:)仅供参考:这段代码使用了麻烦的旧日期时间类,这些类现在是遗留的,完全被现代的java.time类所取代。请参阅。最好将类用于UTC值。使用
ZonedDateTime
用于您拥有完整时区的情况,例如Europe/Paris
或Africa/Casablanca
。最好将类用于UTC值。使用ZonedDateTime
作为您的完整时区,例如Europe/Paris
或Africa/Casablanca
。