我试着减去一天内0:00到12:00的时间。
例如:2012-12-14 06:35 am=>2012-12-13
我做了一个功能,这是工作。但我的问题是在这种情况下还有更好的代码吗?更简单易懂。

public String getBatchDate() {

    SimpleDateFormat timeFormatter = new SimpleDateFormat("H");
    int currentTime = Integer.parseInt(timeFormatter.format(new Date()));
    SimpleDateFormat dateFormatter = new SimpleDateFormat("yyyyMMdd");
    String Date = dateFormatter.format(new Date());

    if ( 0 <= currentTime && currentTime <= 12){
        try {
            Calendar shiftDay = Calendar.getInstance();
            shiftDay.setTime(dateFormatter.parse(Date));
            shiftDay.add(Calendar.DATE, -1);
            Date = dateFormatter.format(shiftDay.getTime());
        } catch (ParseException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        Log.d("BatchDate:", Date);
    }

    return Date;

}

谢谢,

最佳答案

Calendar shiftDay = Calendar.getInstance();
shiftDay.setTime(new Date())
if(shiftDay.get(Calendar.HOUR_OF_DAY) <= 12){
    shiftDay.add(Calendar.DATE, -1);
}
//your date format

10-01 09:31