import java.time.LocalDate;
import java.time.ZoneId;
import java.time.format.DateTimeFormatter;
import java.time.format.DateTimeFormatterBuilder;
import java.time.temporal.ChronoField;
import java.util.HashMap;
import java.util.Locale;
import java.util.Map;
public class Main {
public static void main
(String[] args
) { LocalDate date = LocalDate.now(ZoneId.of("Asia/Kolkata"));
DateTimeFormatter dtf = new DateTimeFormatterBuilder()
.appendText(ChronoField.DAY_OF_MONTH, ordinalMap())
.appendPattern(" MMM. uuuu")
String output
= date.
format(dtf
); }
static Map
<Long, String
> ordinalMap
() { String[] suffix
= { "th",
"st",
"nd",
"rd",
"th",
"th",
"th",
"th",
"th",
"th" }; Map
<Long, String
> map
= new HashMap
<>();
for (int i = 1; i <= 31; i++)
map.
put((long) i,
String.
valueOf(i
) + suffix
[(i
> 3 && i
< 21) ? 0 : (i
% 10)]);
return map;
}
}
aW1wb3J0IGphdmEudGltZS5Mb2NhbERhdGU7CmltcG9ydCBqYXZhLnRpbWUuWm9uZUlkOwppbXBvcnQgamF2YS50aW1lLmZvcm1hdC5EYXRlVGltZUZvcm1hdHRlcjsKaW1wb3J0IGphdmEudGltZS5mb3JtYXQuRGF0ZVRpbWVGb3JtYXR0ZXJCdWlsZGVyOwppbXBvcnQgamF2YS50aW1lLnRlbXBvcmFsLkNocm9ub0ZpZWxkOwppbXBvcnQgamF2YS51dGlsLkhhc2hNYXA7CmltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOwppbXBvcnQgamF2YS51dGlsLk1hcDsKCnB1YmxpYyBjbGFzcyBNYWluIHsKCXB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHsKCQlMb2NhbERhdGUgZGF0ZSA9IExvY2FsRGF0ZS5ub3coWm9uZUlkLm9mKCJBc2lhL0tvbGthdGEiKSk7CgkJRGF0ZVRpbWVGb3JtYXR0ZXIgZHRmID0gbmV3IERhdGVUaW1lRm9ybWF0dGVyQnVpbGRlcigpCgkJCQkJCQkJLmFwcGVuZFRleHQoQ2hyb25vRmllbGQuREFZX09GX01PTlRILCBvcmRpbmFsTWFwKCkpCgkJCQkJCQkJLmFwcGVuZFBhdHRlcm4oIiBNTU0uIHV1dXUiKQoJCQkJCQkJCS50b0Zvcm1hdHRlcihMb2NhbGUuRU5HTElTSCk7CgkJU3RyaW5nIG91dHB1dCA9IGRhdGUuZm9ybWF0KGR0Zik7CgkJU3lzdGVtLm91dC5wcmludGxuKG91dHB1dCk7Cgl9CgoJc3RhdGljIE1hcDxMb25nLCBTdHJpbmc+IG9yZGluYWxNYXAoKSB7CgkJU3RyaW5nW10gc3VmZml4ID0geyAidGgiLCAic3QiLCAibmQiLCAicmQiLCAidGgiLCAidGgiLCAidGgiLCAidGgiLCAidGgiLCAidGgiIH07CgkJTWFwPExvbmcsIFN0cmluZz4gbWFwID0gbmV3IEhhc2hNYXA8PigpOwoKCQlmb3IgKGludCBpID0gMTsgaSA8PSAzMTsgaSsrKQoJCQltYXAucHV0KChsb25nKSBpLCBTdHJpbmcudmFsdWVPZihpKSArIHN1ZmZpeFsoaSA+IDMgJiYgaSA8IDIxKSA/IDAgOiAoaSAlIDEwKV0pOwoKCQlyZXR1cm4gbWFwOwoJfQp9