2014-01-21 49 views
-3

我有一个YYYY-MM-DD格式的日期变量。YYYY-MM-DD减去1天

如何将日期值更改为前一天?所以如果变量的值是2014-01-01,它将变为2014-12-31。

+5

2014年至2011年? :) – summea

+2

你有尝试过什么吗? – Reimeus

+3

将其变成[日历](http://docs.oracle.com/javase/7/docs/api/java/util/Calendar.html)对象。然后通过提供的API减去一天。 – user2864740

回答

2

您可以使用DateFormatCalendar,像这样

String fmt = "yyyy-MM-dd"; 
String dt = "2014-01-01"; 
java.text.DateFormat df = new java.text.SimpleDateFormat(fmt); 
java.util.Calendar cal = java.util.Calendar.getInstance(); 
try { 
    cal.setTime(df.parse(dt)); 
    cal.add(java.util.Calendar.DAY_OF_MONTH, -1); 
    System.out.println(cal.getTime()); 
} catch (Exception e) { 
} 

哪个输出

Tue Dec 31 00:00:00 EST 2013 
1

Java可以解析一个日期,然后减去一天,输出toString()

文档:http://docs.oracle.com/javase/1.5.0/docs/api/java/util/Date.html

龙版本:

String example = "2014-01-01"; 
DateFormat df = new SimpleDateFormat("YYY-MM-dd", Locale.ENGLISH); 
Date result = df.parse(target); 
Calendar cal = Calendar.getInstance(); 
cal.setTime(result); 
cal.add(Calendar.DATE, -1); 
result = cal.getTime(); 
System.out.println(df.format(result)); 
+0

您是否愿意详细阐述如何做到这一点?另外,您链接的javadoc非常过时,请改为使用http://docs.oracle.com/javase/7/docs/api/。 –

+0

考虑它[完成] –