- import java.text.ParsePosition; 
- import java.time.LocalDateTime; 
- import java.time.format.DateTimeFormatter; 
- import java.time.format.DateTimeParseException; 
- import java.util.Optional; 
-   
- public class Main { 
- 	public static void-  main (String[]-  args ) {
 
- 		String-  english  = "Your Last Login was 2013/10/04 13:06:45 ( 0 Days, 0 Hours, 0 Minutes )";
 
- 		String-  chinese  = "您上次登录是 2013/10/04 13:06:45( 0 天, 0 小时 0 分钟 )";
 
-   
- 		// Processing english 
- 		Optional<LocalDateTime> date = getDateTime(english); 
- 		date. ifPresent(- dt  -> System- . out- . printf("Year: %d, Month: %d, Day: %d, Hour: %d, Minute: %d, Second: %d%n"- , 
- 				dt.getYear(), dt.getMonthValue(), dt.getDayOfMonth(), dt.getHour(), dt.getMinute(), dt.getSecond())); 
-   
- 		// Processing chinese 
- 		date = getDateTime(chinese); 
- 		date. ifPresent(- dt  -> System- . out- . printf("Year: %d, Month: %d, Day: %d, Hour: %d, Minute: %d, Second: %d%n"- , 
- 				dt.getYear(), dt.getMonthValue(), dt.getDayOfMonth(), dt.getHour(), dt.getMinute(), dt.getSecond())); 
- 	} 
-   
- 	static-  Optional <- LocalDateTime >-  getDateTime (String-  s ) {
 
- 		// Assuming the date-time string is in the format, yyyy/MM/dd HH:mm:ss 
- 		DateTimeFormatter dtf = DateTimeFormatter.ofPattern("uuuu/M/d H:m:s"); 
-   
- 		Optional<LocalDateTime> result = Optional.empty(); 
- 		for (int i = 0; i < s.length(); i++) { 
- 			try { 
- 				result  =-  Optional. ofNullable(- LocalDateTime. from(- dtf. parse(- s,  new ParsePosition(- i ))));
- 				break; 
- 			} 
- 		} 
- 		return result; 
- 	} 
- } 
				aW1wb3J0IGphdmEudGV4dC5QYXJzZVBvc2l0aW9uOwppbXBvcnQgamF2YS50aW1lLkxvY2FsRGF0ZVRpbWU7CmltcG9ydCBqYXZhLnRpbWUuZm9ybWF0LkRhdGVUaW1lRm9ybWF0dGVyOwppbXBvcnQgamF2YS50aW1lLmZvcm1hdC5EYXRlVGltZVBhcnNlRXhjZXB0aW9uOwppbXBvcnQgamF2YS51dGlsLk9wdGlvbmFsOwoKcHVibGljIGNsYXNzIE1haW4gewoJcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgewoJCVN0cmluZyBlbmdsaXNoID0gIllvdXIgTGFzdCBMb2dpbiB3YXMgMjAxMy8xMC8wNCAxMzowNjo0NSAoIDAgRGF5cywgMCBIb3VycywgMCBNaW51dGVzICkiOwoJCVN0cmluZyBjaGluZXNlID0gIuaCqOS4iuasoeeZu+W9leaYryAyMDEzLzEwLzA0IDEzOjA2OjQ177yIIDAg5aSp77yMIDAg5bCP5pe2IDAg5YiG6ZKfIO+8iSI7CgoJCS8vIFByb2Nlc3NpbmcgZW5nbGlzaAoJCU9wdGlvbmFsPExvY2FsRGF0ZVRpbWU+IGRhdGUgPSBnZXREYXRlVGltZShlbmdsaXNoKTsKCQlkYXRlLmlmUHJlc2VudChkdCAtPiBTeXN0ZW0ub3V0LnByaW50ZigiWWVhcjogJWQsIE1vbnRoOiAlZCwgRGF5OiAlZCwgSG91cjogJWQsIE1pbnV0ZTogJWQsIFNlY29uZDogJWQlbiIsCgkJCQlkdC5nZXRZZWFyKCksIGR0LmdldE1vbnRoVmFsdWUoKSwgZHQuZ2V0RGF5T2ZNb250aCgpLCBkdC5nZXRIb3VyKCksIGR0LmdldE1pbnV0ZSgpLCBkdC5nZXRTZWNvbmQoKSkpOwoKCQkvLyBQcm9jZXNzaW5nIGNoaW5lc2UKCQlkYXRlID0gZ2V0RGF0ZVRpbWUoY2hpbmVzZSk7CgkJZGF0ZS5pZlByZXNlbnQoZHQgLT4gU3lzdGVtLm91dC5wcmludGYoIlllYXI6ICVkLCBNb250aDogJWQsIERheTogJWQsIEhvdXI6ICVkLCBNaW51dGU6ICVkLCBTZWNvbmQ6ICVkJW4iLAoJCQkJZHQuZ2V0WWVhcigpLCBkdC5nZXRNb250aFZhbHVlKCksIGR0LmdldERheU9mTW9udGgoKSwgZHQuZ2V0SG91cigpLCBkdC5nZXRNaW51dGUoKSwgZHQuZ2V0U2Vjb25kKCkpKTsKCX0KCglzdGF0aWMgT3B0aW9uYWw8TG9jYWxEYXRlVGltZT4gZ2V0RGF0ZVRpbWUoU3RyaW5nIHMpIHsKCQkvLyBBc3N1bWluZyB0aGUgZGF0ZS10aW1lIHN0cmluZyBpcyBpbiB0aGUgZm9ybWF0LCB5eXl5L01NL2RkIEhIOm1tOnNzCgkJRGF0ZVRpbWVGb3JtYXR0ZXIgZHRmID0gRGF0ZVRpbWVGb3JtYXR0ZXIub2ZQYXR0ZXJuKCJ1dXV1L00vZCBIOm06cyIpOwoJCQoJCU9wdGlvbmFsPExvY2FsRGF0ZVRpbWU+IHJlc3VsdCA9IE9wdGlvbmFsLmVtcHR5KCk7CgkJZm9yIChpbnQgaSA9IDA7IGkgPCBzLmxlbmd0aCgpOyBpKyspIHsKCQkJdHJ5IHsKCQkJCXJlc3VsdCA9IE9wdGlvbmFsLm9mTnVsbGFibGUoTG9jYWxEYXRlVGltZS5mcm9tKGR0Zi5wYXJzZShzLCBuZXcgUGFyc2VQb3NpdGlvbihpKSkpKTsKCQkJCWJyZWFrOwoJCQl9IGNhdGNoIChEYXRlVGltZVBhcnNlRXhjZXB0aW9uIHwgSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbiBlKSB7CgkJCX0KCQl9CgkJcmV0dXJuIHJlc3VsdDsKCX0KfQ==
				
				
				
				
				
			 
			
				
			
			
				
	
		
		
	
	
		Year: 2013, Month: 10, Day: 4, Hour: 13, Minute: 6, Second: 45
Year: 2013, Month: 10, Day: 4, Hour: 13, Minute: 6, Second: 45