2014-01-21 51 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

考慮它[完成] –