Skip to content Skip to sidebar Skip to footer

Date Format Issue In Android When Locale Is Arabic

I have a serious problem here, I am building an app that will work on Arabic devices, and I need to send dates to the server, I am using Android DatePickerDialog to get the date, b

Solution 1:

You can use:

Calendar.set(int year, int month, int day, int hourOfDay, int minute, int second)

Sets the year, month, day of the month, hour of day, minute, and second fields. Other fields are not changed; call clear first if this is not desired. The month value is 0-based, so it may be clearer to use a constant like JANUARY. Like this:

Calendar cal = Calendar.getInstance(Locale.US);
 public void onDateSet(DatePicker view, int year, int month, int day) {
  cal.set(year, month, day, 0, 0, 0);
  // get time in milliseconds
  Long timeInmilliseconds = cal.getTimeInMillis();
  // print time
  Log.v("log", "Date "+ new Date(cal.getTimeInMillis()));
 }

Also see this:

A common mistake is to implicitly use the default locale when producing output meant to be machine-readable. This tends to work on the developers test devices (especially because so many developers use en_US), but fails when run on a device whose user is in a more complex locale. For example, if you are formatting integers some locales will use non-ASCII decimal digits. As another example, if you are formatting floating-point numbers some locales will use ',' as the decimal point and '.' for digit grouping. That is correct for human-readable output, but likely to cause problems if presented to another computer (parseDouble(String) cannnot parse such a number, for example).


Post a Comment for "Date Format Issue In Android When Locale Is Arabic"