java-以“ dd-MMM-yy”格式将字符串转换为joda LocalDate
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java-以“ dd-MMM-yy”格式将字符串转换为joda LocalDate,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2403字,纯文字阅读大概需要4分钟。
内容图文
我正在使用JAXB和joda time 2.2.将数据从Mysql备份到XML并将其还原.在我的表格中,我有一个日期属性,格式为“ 16-Mar-05”.我成功地将其存储在XML中.但是,当我想从XML读取并将其放回Mysql表时,我无法获得正确的格式.
这是我的XMLAdapter类,在这里,在非编组方法中,输入字符串为“ 16-Mar-05”,但是我无法将格式为“ dd-Mar-05”的localDate变量设置为“ dd- MMM-YY”.我发布了所有尝试过的选项,如何以“ dd-MMM-yy”格式获取localDate,例如16-Mar-05格式?
谢谢!!
public class DateAdapter extends XmlAdapter<String, LocalDate> {
// the desired format
private String pattern = "dd-MMM-yy";
@Override
public String marshal(LocalDate date) throws Exception {
//return new SimpleDateFormat(pattern).format(date);
return date.toString("dd-MMM-yy");
}
@Override
public LocalDate unmarshal(String date) throws Exception {
if (date == null) {
return null;
} else {
//first way
final DateTimeFormatter dtf = DateTimeFormat.forPattern("dd-MMM-yy");
final LocalDate localDate2 = dtf.parseLocalDate(date);
//second way
LocalDate localDate3 = LocalDate.parse(date,DateTimeFormat.forPattern("dd-MMM-yy"));
//third way
DateTimeFormatter FORMATTER = DateTimeFormat.forPattern("dd-MMM-yy");
DateTime dateTime = FORMATTER.parseDateTime(date);
LocalDate localDate4 = dateTime.toLocalDate();
return localDate4;
}
}
解决方法:
所以我拿了你的代码并运行了它,对我来说很好用…
我认为您遇到的问题是,您期望LocalDate对象保持原始解析对象时使用的格式,而这不是LocalDate的工作方式.
LocalDate是日期或时间段的表示形式,不是一种格式.
LocalDate有一个toString方法,可用于转储对象的值,它是对象用来提供人类可读表示的内部格式.
要格式化日期,您需要使用某种格式化程序,该格式化程序将采用您想要的模式和日期值并返回String
例如,以下代码…
SimpleDateFormat sdf = new SimpleDateFormat(pattern);
String date = "16-Mar-05";
DateTimeFormatter dtf = DateTimeFormat.forPattern("dd-MMM-yy");
LocalDate localDate2 = dtf.parseLocalDate(date);
System.out.println(localDate2 + "/" + dtf.print(localDate2));
//second way
LocalDate localDate3 = LocalDate.parse(date, DateTimeFormat.forPattern("dd-MMM-yy"));
System.out.println(localDate3 + "/" + dtf.print(localDate3));
//third way
DateTimeFormatter FORMATTER = DateTimeFormat.forPattern("dd-MMM-yy");
DateTime dateTime = FORMATTER.parseDateTime(date);
LocalDate localDate4 = dateTime.toLocalDate();
System.out.println(localDate4 + "/" + FORMATTER.print(localDate4));
产…
2005-03-16/16-Mar-05
2005-03-16/16-Mar-05
2005-03-16/16-Mar-05
在对此不高兴之前,这就是Java Date的工作方式.
内容总结
以上是互联网集市为您收集整理的java-以“ dd-MMM-yy”格式将字符串转换为joda LocalDate全部内容,希望文章能够帮你解决java-以“ dd-MMM-yy”格式将字符串转换为joda LocalDate所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。