конвертировать дату и время в определенном формате в метку времени Android - PullRequest
0 голосов
/ 18 октября 2019

Я хочу преобразовать две даты в этой форме, т.е. ... 18-10-2019 13:05 вечера в метку времени, а затем сравнить их. Я пробовал это, но это не работает

public void getTimeStamp(){

  try{
    SimpleDateFormat dateFormat = new SimpleDateFormat("MM-dd-yyyy K:mm aa");
    Date parsedDate = dateFormat.parse("10-18-2019 01:05 pm");
    Timestamp timestamp = new java.sql.Timestamp(parsedDate.getTime());
    Log.d("***parsedDate",parsedDate.toString());
    Log.d("***timestamp",timestamp.toString());
  } catch(Exception e) {
       e.printStackTrace();
  } 

}

Пожалуйста, помогите мне

Ответы [ 3 ]

0 голосов
/ 18 октября 2019

Попробуйте это:

public void getTimeStamp(){

    try{

         DateFormat inputFormat = new SimpleDateFormat("dd-MM-yyyy K:mm aa");
         DateFormat outputFormat = new SimpleDateFormat("MMM dd yyyy");
         Date parsedDate = inputFormat.parse("18-10-2019 01:05 pm");
         String outputDateStr = outputFormat.format(parsedDate);
         Log.d("***parsedDate",parsedDate.toString());
         Log.d("***timestamp",outputDateStr);

    } catch(Exception e) {
            e.printStackTrace();
    } 

 }
0 голосов
/ 18 октября 2019
public void getTimeStamp(){

  try{
    SimpleDateFormat dateFormat = new SimpleDateFormat("MM-dd-yyyy K:mm aa");
    Date parsedDate = dateFormat.parse("10-18-2019 01:05 pm");
    Timestamp timestamp = new java.sql.Timestamp(parsedDate.getTime());
    Log.d("***parsedDate",parsedDate.toString());
    Log.d("***timestamp",timestamp.toString());
  } catch(Exception e) {
       e.printStackTrace();
  } 


 Timestamp timestamp = new java.sql.Timestamp(parsedDate.getTime());


Do not cast it to Timestamp take long

Long timestamp = parsedDate.getTime();
0 голосов
/ 18 октября 2019

В вашем коде вы используете шаблон "MM-dd-yyyy K: mm aa", это означает, что первое значение - это месяц. Но это значение синтаксического анализа, "18" - это месяц, и это недопустимый месяц. Я думаю, вам следует изменить шаблон на «дд-мм-гггг К: мм аа».

И лучше использовать Календарь, чтобы получить метку времени:

try {
        SimpleDateFormat dateFormat = SimpleDateFormat("MM-dd-yyyy K:mm aa");
        Date parsedDate = dateFormat.parse("10-18-2019 01:05 pm");
        Calendar cal = Calendar.getInstance();
        cal.setTime(parsedDate);
        long timestamp = cal.getTimeInMillis();
    } catch (Exception: e) {
        e.printStackTrace();
    }
...