2015-09-21 5 views
1

Я хочу знать, есть ли способ получить формат, который в настоящее время используется системой. В настоящее время я использую библиотеку Joda времени и вручную указав foramt, что я ожидал дата быть.Формат даты в формате Android

private final DateTimeFormatter formatter = DateTimeFormat.forPattern("yyyy-MM-dd"); 
LocalDate date = LocalDate.parse(event_date, formatter); 

Это, конечно, не лучшая идея Кодирую шаблон, так есть способ я могу получить шаблон из системы?

+0

Проверить DateUtils http://developer.android.com/reference/android/text/format/ DateUtils.html – iago

ответ

0

Вы можете использовать что-то вроде этого:

DateFormat formatter = DateFormat.getDateInstance(DateFormat.SHORT, Locale.getDefault()); 
String pattern  = ((SimpleDateFormat)formatter).toPattern(); 
String localPattern = ((SimpleDateFormat)formatter).toLocalizedPattern(); 
+0

Пробовал этот путь, и он возвращает шаблон MMMM d, y в моем случае, который не соответствует формату, на котором фактически хранятся значения даты. Если вам нужно больше деталей, я пытаюсь проверять события из контактов на телефона, и для этого мне нужно указать формат даты при сканировании. –

+0

Он возвращает все ваши шаблоны дат по умолчанию, поэтому MMMM d, y является шаблоном по умолчанию. –

0

Вы можете сделать так:

String datePattern; 
String timePattern; 
void loadDateTimePattern(Context context) { 
     SimpleDateFormat dateFormat = (SimpleDateFormat) DateFormat.getDateFormat(context); 
     SimpleDateFormat timeFormat = (SimpleDateFormat) DateFormat.getTimeFormat(context); 
     datePattern = dateFormat.toPattern(); 
     timePattern = timeFormat.toPattern(); 
} 

DateTimeFormatter timeFormatter = DateTimeFormat.forPattern(timePattern); 
DateTimeFormatter timeFormatterFull = DateTimeFormat.forPattern(datePattern + ", " + timePattern); 
+0

Возвращает M/d/y в случае формата даты, но не соответствует шаблону, в котором даты фактически находятся, поэтому он не работает. –

Смежные вопросы