/* package whatever; // don't place package name! */

import java.util.*;
import java.lang.*;
import java.io.*;
import java.time.*;
import java.time.format.*;

/* Name of the class has to be "Main" only if the class is public. */
class Ideone
{
	public static void main (String[] args) throws java.lang.Exception
	{
		String input = "30 11 2012 12:08:56.235 +0700";
		DateTimeFormatter f = DateTimeFormatter.ofPattern ( "dd MM uuuu HH:mm:ss.SSS X" , Locale.US );
		OffsetDateTime odt = OffsetDateTime.parse ( input , f );
		System.out.println( "input: " + input );
		System.out.println( "odt: " + odt );
		
		Instant instant = odt.toInstant();
		System.out.println( "instant: " + instant );
		
		ZonedDateTime zdtKolkata = odt.toInstant ().atZone ( ZoneId.of ( "Asia/Kolkata" ) );
		System.out.println( "zdtKolkata: " + zdtKolkata );
		
		// CAUTION: Not recommended. Avoid the legacy date-time classes such as `java.util.Date`. 
		// CAUTION: Data-loss as `Instant` has resolution in nanoseconds but only milliseconds in `java.util.Date`.
		java.util.Date utilDate = java.util.Date.from( instant );  
		System.out.println( "utilDate: " + utilDate );
	}
}