Cómo comparar dos veces con Formate AM o PM en Android -- android campo con time campo con compare campo con datetime-format camp Relacionados El problema

How to compare two times with AM OR PM formate in android


0
vote

problema

Español

Quiero comparar dos veces como las 12 am y 1am. He hecho la siguiente función para hacer esto

  public int timeValidation(){     String stTime=btn_srt_time.getText().toString();     String endtime=btn_end_time.getText().toString();      SimpleDateFormat simpleDateFormat = new SimpleDateFormat("kk:mm");       Date date1;      Date date2;     try {          date1 = simpleDateFormat.parse(stTime);                  System.out.println("================== date1=================="+date1);          date2 = simpleDateFormat.parse(endtime);         System.out.println("===========> date 2 ==============>"+date2);                      return date1.compareTo(date2);     } catch (ParseException e) {         // TODO Auto-generated catch block         e.printStackTrace();     }      return 0;   }   

Me da respuesta correcta cuando la comparación está entre las 12:00 am y las 12:45 am. Pero cuando estoy comparando las 12:00 am y la 1:00 am, dice que 1:00 am es antes de las 12:00 am PLS AYUDA ...

Original en ingles

I want to compare two times like 12AM and 1AM. I have made following function to do this

public int timeValidation(){     String stTime=btn_srt_time.getText().toString();     String endtime=btn_end_time.getText().toString();      SimpleDateFormat simpleDateFormat = new SimpleDateFormat("kk:mm");       Date date1;      Date date2;     try {          date1 = simpleDateFormat.parse(stTime);                  System.out.println("================== date1=================="+date1);          date2 = simpleDateFormat.parse(endtime);         System.out.println("===========> date 2 ==============>"+date2);                      return date1.compareTo(date2);     } catch (ParseException e) {         // TODO Auto-generated catch block         e.printStackTrace();     }      return 0;   } 

It gives me right answer when comparison is between 12:00AM and 12:45AM. But when I am comparing 12:00AM and 1:00AM it says 1:00AM is before 12:00AM pls help...

           

Lista de respuestas

3
 
vote
vote
La mejor respuesta
 

Uso yyyy-MM-dd hh:mm:ss a .

HH será la hora en el día (0-23), mientras que hh será la hora en AM / PM (1-12). Por lo tanto, con su formato de fecha 02:30:00 se analizará como eso, en lugar de convertirse en la versión de PM (que en la hora del día sería las 14:30:00). Para obtener más información, un vistazo a este

 

use yyyy-MM-dd hh:mm:ss a.

HH will be the hour in day (0-23) whereas hh will be the hour in AM/PM (1-12). Thus with your date format 02:30:00 will be parsed as just that instead of being converted to the PM version (which in hour of day would be 14:30:00). for more reference a look at this

 
 
 
 
0
 
vote
  Date time1, time2;  SimpleDateFormat sdf = new SimpleDateFormat("hh:mm");  Calendar cal1 = Calendar.getInstance(); // 12:00 AM cal1.set(0, 0, 0, 00, 00);  Calendar cal2 = Calendar.getInstance(); // 01:00 AM cal2.set(0, 0, 0, 01, 00);  try {             time1 = sdf.parse((String) DateFormat.format("hh:mm aaa", cal1));             time2 = sdf.parse((String) DateFormat.format("hh:mm aaa", cal2));         }catch (Exception e){}  if(time2.after(time1)){  //time2 is greater }else if(time2.before(time1)){ //time1 is greater }else{ //both time is equal }   
 
Date time1, time2;  SimpleDateFormat sdf = new SimpleDateFormat("hh:mm");  Calendar cal1 = Calendar.getInstance(); // 12:00 AM cal1.set(0, 0, 0, 00, 00);  Calendar cal2 = Calendar.getInstance(); // 01:00 AM cal2.set(0, 0, 0, 01, 00);  try {             time1 = sdf.parse((String) DateFormat.format("hh:mm aaa", cal1));             time2 = sdf.parse((String) DateFormat.format("hh:mm aaa", cal2));         }catch (Exception e){}  if(time2.after(time1)){  //time2 is greater }else if(time2.before(time1)){ //time1 is greater }else{ //both time is equal } 
 
 

Relacionados problema

1  DateTimeFormatter.Format con continente / ciudad  ( Datetimeformatter format with continent city ) 
En mi programa, tengo una fecha y un patrón de fecha en un archivo de texto, y el patrón se usa con el DateTimeFormatter para analizar / formatear la fecha. ...

1  Cambio de tiempo y fechaFormat para mostrar el formato correcto en el tablero brillante  ( Changing time and dateformat to show correct format on shiny dashboard ) 
He construido este tablero con múltiples columnas de fecha y hora Sin embargo, en el panel de control, la ventana emergente "T" y "Z" en la pantalla ¿Algun...

0  Error de formato de la condición de unión SQL  ( Sql join condition time format error ) 
Estoy trabajando en el código SQL para acceder a la "pantalla verde" AS400 IBM ISERIES usando VBA y estoy conectando a través de una conexión ADODB (házmelo s...

0  El análisis del tiempo de Python falla, cuando TZ está en el medio ambiente  ( Python time parsing fails when tz is in the environment ) 
El siguiente script simple: from datetime import datetime as DT ts = 'Mon Aug 17 12:49:28 EDT 2020' fmt = '%a %b %d %H:%M:%S %Z %Y' dts = DT.strptime(ts,...

119  ¿Cómo convertir milisegundos en forma legible humana?  ( How to convert milliseconds into human readable form ) 
Necesito convertir una cantidad arbitraria de milisegundos en días, horas, minutos segundos. Por ejemplo: 10 días, 5 horas, 13 minutos, 1 segundo. ...

2  QT Segundos a DD HH SS  ( Qt seconds to dd hh ss ) 
usando QT 4.8 ¿Cómo puedo imprimir la hora en el formato DD HH SS? Tengo los segundos y quiero recuperar una cadena en ese formato. ...

2  ¿Cómo cambia el formato DateTime Universal Sort Sort en .NET?  ( How change the datetime universal sort format in net ) 
Estamos tratando de forzar nuestros objetos de DateTime en C # para serializar utilizando un formato diferente al predeterminado. No queremos incluir milisegu...

2  Fecha de análisis de la UCI con TimeZone  ( Icu parsing date with timezone ) 
Estoy analizando usando UCI: DateFormat formatter = new SimpleDateFormat("HH:mm z"); Date date = formatter.parse("10:33 PST"); Esto lanza ...

0  Mientras que el bucle restaba un mes desde una fecha hasta un día determinado  ( While loop subtracting one month from a date to a given day ) 
Estoy tratando de restar un mes desde una fecha hacia atrás hasta una fecha determinada. El código que he escrito hace la resta, pero no sé por qué no complet...

-1  ¿Convertir el tiempo de fecha entero en el problema de la fecha real? Java [duplicado]  ( Convert integer date time into real date time problem java ) 
Esta pregunta ya tiene respuestas aquí : Convertir JSON Fecha a Java Fecha ...




© 2022 respuesta.top Reservados todos los derechos. Centro de preguntas y respuestas reservados todos los derechos