Cross platform code to change the date format with an explicit locale:
	
	
	
	
	
	
	
		
			
			
			
			
			
		
	
	
	
		
	
	
		
	
Depends on (j)Reflection in B4A and B4J.
Usage example:
	
	
	
	
	
	
	
		
			
			
			
			
			
		
	
	
	
		
	
	
		
	
			
			
			
				B4X:
			
		
		
		Private Sub SetDateFormat(Language As String, Country As String, format As String)
    #if B4A or B4J
    Dim locale As JavaObject
    locale.InitializeNewInstance("java.util.Locale", Array(Language, Country))
    Dim DateFormat As JavaObject
    DateFormat.InitializeNewInstance("java.text.SimpleDateFormat", Array(format, locale))
    Dim r As Reflector
    r.Target = r.RunStaticMethod("anywheresoftware.b4a.keywords.DateTime", "getInst", Null, Null)
    r.SetField2("dateFormat", DateFormat)
    #else if B4i
    Dim locale As NativeObject
    locale = locale.Initialize("NSLocale").RunMethod("alloc", Null).RunMethod("initWithLocaleIdentifier:", Array(Language & "_" & Country))
    DateTime.As(NativeObject).GetField("dateFormat").SetField("locale", locale)
    DateTime.DateFormat = format
    #End if
End SubDepends on (j)Reflection in B4A and B4J.
Usage example:
			
				B4X:
			
		
		
		Private Sub Button1_Click
    Dim format As String = "dd MMM, yyyy"
    SetDateFormat("en", "US", format)
    Log(DateTime.Date(DateTime.Now))
    SetDateFormat("he", "IL", format)
    Log(DateTime.Date(DateTime.Now))
End Sub 
				 
 
		 
 
		 
 
		 
 
		 
 
		