- 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