#java #android
#java #Android
Вопрос:
Моя строка даты — «17 октября 2016 г. 12:17 вечера», а мой метод анализа даты -:
public static String formatDate(String dateString) {
String stringDate = "";
try {
//Mar 11 2016 2:21PM
if (dateString != null) {
SimpleDateFormat dt = new SimpleDateFormat("MMM dd yyyy hh:mma");
Date date = dt.parse(dateString);
// *** same for the format String below
SimpleDateFormat dt1 = new SimpleDateFormat("EEE , hh:mm a");
stringDate = dt1.format(date);
}
return stringDate;
} catch (ParseException parseException) {
Log.e("date format", "" parseException.getMessage());
}
return stringDate;
}
Он отлично работает с английским языком, но когда я меняю язык своего приложения на хинди или любой другой, я получаю исключение.
java.text.ParseException: Unparseable date: "Oct 17 2016 12:17PM" (at offset 0)
Что я делаю?
Комментарии:
1. Синтаксический анализ даты зависит от языка. Это проблема локали. Здесь много повторяющихся сообщений об этом
Ответ №1:
Вам нужно установить языковой стандарт английский
SimpleDateFormat dt = new SimpleDateFormat("MMM dd yyyy hh:mma", Locale.ENGLISH);
Ответ №2:
public class Practice {
public static void main(String...args) {
String day,month, finalDay;
try {
DateFormat df = new SimpleDateFormat("dd/MM/yyyy");
String currentDateTimeString = df.format(new Date());
//String currentDateTimeString = DateFormat.getDateTimeInstance().format(new Date());
SimpleDateFormat format = new SimpleDateFormat("dd/MM/yyyy", Locale.US);
Date date = format.parse(currentDateTimeString);
SimpleDateFormat dayFormat = new SimpleDateFormat("dd");
day = dayFormat.format(date);
SimpleDateFormat monthFormat = new SimpleDateFormat("MM");
month = monthFormat.format(date);
System.out.print("My day" day);
System.out.println("My month" month);
} catch (Exception e) {
System.out.println("Hello exception " e.getMessage());
e.printStackTrace();
}
}
}