2012-05-31 104 views
5

在java类中,我从datepicker输入窗体中以mm/dd/yyyy的形式获取日期,字符串表示为“renewDate”。使用Joda时间库进行日期格式化

当我尝试使用约达时间库

DateTime expireDate = new DateTime(renewDate); 
// i get error at above line 
updateOrganization.setRenewdate(expireDate.toDate()); 
organizationDAO.update(updateOrganization); 

在代码更新,但如果I格式的形式即日期,从毫米/日/年,以YYYY-MM-DD并将其发送到它的java类工作正常。

如何在Java类中将日期从mm/dd/yy格式设置为yyyy-mm-dd。输入是Stringformat。

+0

什么类型的日期选择器? AWT,SWT,JSF,JS ...? – Thor

+0

尝试通过datepickers API查找关键字'pattern'。 – JMelnik

回答

15

的有效格式为您所使用的构造函数列表都在javadoc of ISODateTimeFormat,其中不包括“MM/DD/YYYY”详细:

日期时间=时间| date-opt-time
time ='T'time-element [offset]
date-opt-time = date-element ['T'[time-element] [offset]]
date-element = std- date-element | ord-date-element |周最新元件
STD-日期元素= YYYY [ ' - ' MM [ ' - ' DD]]
ORD-日期元素= YYYY [ ' - ' DDD]
周最新元素= XXXX '-W'ww [' - 'e]
time-element = HH [minute-element] | [分数]
minute-element =':'mm [second-element] | [分数]
second-element =':'ss [分数]
fraction =('。'|',')digit +
offset ='Z'| (('+'|' - ')HH [':'mm [':'ss [('。'|',')SSS]]])

您可以使用DateTimeFormatter(注意MM在一个月大写):

DateTimeFormatter fmt = DateTimeFormat.forPattern("MM/dd/yyyy"); 
DateTime expireDate = fmt.parseDateTime(renewDate); 
2

您需要使用静态方法parse的构造函数采用字符串是ISO格式

你需要的日期格式解析日期如下

DateTimeFormatter fmt = DateTimeFormat.forPattern("MM/dd/yyyy"); 
DateTime expireDate = DateTime.parse(renewDate, fmt); 
相关问题