import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Locale;
import java.util.TimeZone;
class MyTest {
public static void main
(String[] args
) {
// Set to any date.
calendar.set(2013, 10, 3);
System.
out.
println(dateFormat.
format(calendar.
getTime()));
// Set to another day.
calendar.set(2014, 0, 15);
// --- THE WTF STARTS HERE ---
// Uncommenting the line below returns the correct date in the end.
//calendar.getTime();
// Set to monday of current week.
calendar.
set(Calendar.
DAY_OF_WEEK, calendar.
getFirstDayOfWeek());
// Expected outdate is 20140113.
System.
out.
println(dateFormat.
format(calendar.
getTime()));
}
}
aW1wb3J0IGphdmEudGV4dC5TaW1wbGVEYXRlRm9ybWF0OwppbXBvcnQgamF2YS51dGlsLkNhbGVuZGFyOwppbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKaW1wb3J0IGphdmEudXRpbC5UaW1lWm9uZTsKCgpjbGFzcyBNeVRlc3QgewogICAgCiAgICBwcml2YXRlIHN0YXRpYyBDYWxlbmRhciBjYWxlbmRhciA9IENhbGVuZGFyLmdldEluc3RhbmNlKFRpbWVab25lLmdldFRpbWVab25lKCJDRVQiKSwgTG9jYWxlLkZSQU5DRSk7CiAgICBwcml2YXRlIHN0YXRpYyBTaW1wbGVEYXRlRm9ybWF0IGRhdGVGb3JtYXQgPSBuZXcgU2ltcGxlRGF0ZUZvcm1hdCgieXl5eU1NZGQiKTsKCiAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB7CiAgICAgICAgCiAgICAgICAgLy8gU2V0IHRvIGFueSBkYXRlLgogICAgICAgIGNhbGVuZGFyLnNldCgyMDEzLCAxMCwgMyk7CiAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKGRhdGVGb3JtYXQuZm9ybWF0KGNhbGVuZGFyLmdldFRpbWUoKSkpOwogICAgICAgIAogICAgICAgIC8vIFNldCB0byBhbm90aGVyIGRheS4KICAgICAgICBjYWxlbmRhci5zZXQoMjAxNCwgMCwgMTUpOwogICAgICAgIC8vIC0tLSBUSEUgV1RGIFNUQVJUUyBIRVJFIC0tLQogICAgICAgIC8vIFVuY29tbWVudGluZyB0aGUgbGluZSBiZWxvdyByZXR1cm5zIHRoZSBjb3JyZWN0IGRhdGUgaW4gdGhlIGVuZC4KICAgICAgICAvL2NhbGVuZGFyLmdldFRpbWUoKTsKICAgICAgICAKICAgICAgICAvLyBTZXQgdG8gbW9uZGF5IG9mIGN1cnJlbnQgd2Vlay4KICAgICAgICBjYWxlbmRhci5zZXQoQ2FsZW5kYXIuREFZX09GX1dFRUssIGNhbGVuZGFyLmdldEZpcnN0RGF5T2ZXZWVrKCkpOwoKICAgICAgICAvLyBFeHBlY3RlZCBvdXRkYXRlIGlzIDIwMTQwMTEzLgogICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihkYXRlRm9ybWF0LmZvcm1hdChjYWxlbmRhci5nZXRUaW1lKCkpKTsKCiAgICB9Cgp9Cg==