fork(2) download
  1. /* package whatever; // don't place package name! */
  2.  
  3. import java.util.*;
  4. import java.lang.*;
  5. import java.io.*;
  6.  
  7. import java.time.* ;
  8. import java.time.format.* ;
  9. import java.time.temporal.* ;
  10. import java.time.chrono.* ;
  11.  
  12.  
  13. /* Name of the class has to be "Main" only if the class is public. */
  14. class Ideone
  15. {
  16. public static void main (String[] args) throws java.lang.Exception
  17. {
  18.  
  19. String input = "02-29" ;
  20. String inputModified = "--" + input ;
  21. MonthDay md = MonthDay.parse( inputModified ) ;
  22.  
  23. LocalDate leapYear2012 = md.atYear( 2012 ) ;
  24.  
  25. ZoneId z = ZoneId.of( "America/Montreal" ) ;
  26. Year y = Year.now( z ) ;
  27. LocalDate currentYear = md.atYear( y.getValue() ) ;
  28.  
  29. System.out.println( "md.toString(): " + md ) ;
  30. System.out.println( "leapYear2012.toString(): " + leapYear2012 ) ;
  31. System.out.println( "currentYear.toString(): " + currentYear ) ;
  32.  
  33. ZoneId zKolkata = ZoneId.of( "Asia/Kolkata" ) ;
  34. long yearNumber = Year.now( zKolkata ).getValue() ;
  35. DateTimeFormatter formatter = new DateTimeFormatterBuilder().parseDefaulting( ChronoField.YEAR , yearNumber ).appendPattern( "MM-dd").toFormatter() ;
  36. LocalDate ld = LocalDate.parse( "02-28" , formatter ) ;
  37. System.out.println( "ld.toString(): " + ld ) ;
  38.  
  39. System.out.println(
  40.  
  41. MonthDay
  42. .parse (
  43. "--" + "02-29"
  44. )
  45. .atYear(
  46. Year.now( ZoneId.of( "Asia/Tokyo" ) ).getValue()
  47. )
  48.  
  49. );
  50.  
  51. }
  52. }
Success #stdin #stdout 0.16s 38900KB
stdin
Standard input is empty
stdout
md.toString(): --02-29
leapYear2012.toString(): 2012-02-29
currentYear.toString(): 2019-02-28
ld.toString(): 2019-02-28
2019-02-28