Java/Groovy - простое переформатирование даты
Я новичок в разработке Java/Groovy, и у меня есть простая строка, которую я хотел бы переформатировать, однако я получаю ошибку "Unparseable date" при попытке выполнить следующее:
import java.text.SimpleDateFormat
import java.util.Date
String oldDate
Date date
String newDate
oldDate = '04-DEC-2012'
date = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.S").parse(oldDate)
newDate = new SimpleDateFormat("M-d-yyyy").format(date)
println newDate
Я уверен, что это что-то простое, но решение ускользает от меня. Кто-нибудь может помочь?
4 ответа
Решение
С Groovy вам не нужны включения, и вы можете просто:
String oldDate = '04-DEC-2012'
Date date = Date.parse( 'dd-MMM-yyyy', oldDate )
String newDate = date.format( 'M-d-yyyy' )
println newDate
Печатать:
12-4-2012
Ваш DateFormat
шаблон не соответствует введенной вами дате String
, Вы могли бы использовать
new SimpleDateFormat("dd-MMM-yyyy")
oldDate
не в формате SimpleDateFormat
вы используете, чтобы разобрать его.
Попробуйте этот формат: dd-MMM-yyyy
- Это соответствует тому, что вы пытаетесь разобрать.
//Groovy Script
import java.util.Date
import java.util.TimeZone
tz = TimeZone.getTimeZone("America/Sao_Paulo")
def date = new Date()
def dt = date.format("yyyy-MM-dd HH:mm:ss", timezone=tz)
println dt //formatado
println date // formatado porém, horario do Sistema em GMT.