wenn es wirklich ein Einzeiler muss sein, und es spielt keine Rolle, ob der Code verständlich ist, denke ich, die folgende Anweisung sollte funktionieren:
Date yesterday = new SimpleDateFormat("yyyyMMdd").parse(
""+(Integer.parseInt(new SimpleDateFormat("yyyyMMdd").format(new Date()))-1));
es formatiert die aktuelles Datum als "yyyyMMdd", z "20100812" für heute, analysiert es als Int: 20100812, subtrahiert eins: 20100811 und analysiert dann das Datum "20100811" mit dem vorherigen Format. Es wird auch funktionieren, wenn heute der erste eines Monats ist, da der 0. eines Monats von einem nachgiebigen DateFormat als letzter Tag des vorherigen Monats geparst wird.
Das Format "yyyyDDD" sollte auch funktionieren (D ist der Tag des Jahres).
Für den ersten Tag des laufenden Monats, können Sie einen ähnlichen Trick verwenden:
Date firstday = new SimpleDateFormat("yyyyMMdd").parse(
new SimpleDateFormat("yyyyMM").format(new Date())+"01");
Das gestrige Datum in welchem Format? Als Kalenderobjekt? Als eine Schnur? Als ein util.Date? Als sql.Date? – Stephen