我必须找到上个月的最后一个日期 我正在使用Groovy脚本
我可以把日期部分搞定,但现在我必须把它变成yyyyMMdd形式的字符串。
到目前为止代码(是的,它有效)
import java.util.GregorianCalendar;
import java.util.Calendar;
import java.util.Date;
Calendar aCalendar = Calendar.getInstance();
// add -1 month to current month
aCalendar.add(Calendar.MONTH, -1);
// set actual maximum date of previous month
aCalendar.set(Calendar.DATE,aCalendar.getActualMaximum(Calendar.DAY_OF_MONTH));
//read it
lastDateOfPreviousMonth = aCalendar.getTime();
以时间戳形式返回日期 20160229 105925.240
现在我需要从时间戳中提取20160229作为字符串
我已经尝试过所有事情......
答案 0 :(得分:2)
如果它在Java 8上运行,则可以使用新的Java Time类:
import java.time.LocalDate
import java.time.format.DateTimeFormatter
import java.time.temporal.TemporalAdjusters
String date = LocalDate.now()
.minusMonths(1)
.with(TemporalAdjusters.lastDayOfMonth())
.format(DateTimeFormatter.ofPattern("yyyyMMdd"))
如果这是Java 7或Java 6,您可以使用Calendar和一些Groovy:
String date = Calendar.instance.with {
add(MONTH, -1)
set(DAY_OF_MONTH, getActualMaximum(DAY_OF_MONTH))
time
}.format('yyyyMMdd')