2013-01-09 3 views
0

J'ai le format de date converti en milliseconds et le format d'heure en milliseconds. Je reçois l'heure actuelle dans plus de 13digits. CurrentTime= 1357755780000, StartingTime=1357602840, EndingTime=1357756140Comment convertir le format de date et d'heure actuel en millisecondes (seulement 10 chiffres)?

Mais quand je fais la comparaison dans le code ci-dessous, la partie if n'est pas exécutée, seule la partie else est exécutée.

Y a-t-il une erreur dans mon code? Je veux convertir currentTime en 10 chiffres. Donc je pense que la conversion du format de date en millisecondes est fausse.

String toParse = getDateorTime(1) + " " + getDateorTime(2); 
long currentTime=0,startingTime=0,endingTime=0,milliseconds=0; 
try 
{ 
    dateFormater = new SimpleDateFormat("yyyy/MMM/dd hh:mm"); 
    Date date = null; 
    try { 
     date = dateFormater.parse(toParse); 
     date.setTime(milliseconds); 
    }catch (Exception e) { 
     System.out.println("\n Error in date parsing"+e.toString()); 
    } 
    currentTime = (date.getTime()); 
    start=Long.parseLong((cursor.getString(5).trim())); 
    end=Long.parseLong((cursor.getString(6).trim())); 
}catch (ParseException pe) { 
    pe.printStackTrace(); 
} 

if((currentTime>=startingTime)&&(currentTime<=endingTime)) 
{ 
    // 
} 
+0

essayez de poster le code restant comme si le curseur est initialisé, etc. – Raj

Répondre

0

Sur la base de vos exemples, vous avez réellement startingTime et endingTime à SECONDES, alors que vous comparez à currentTime en quelques millisecondes. Il suffit de multiplier les deuxièmes fois par 1000, comme suit:

if((currentTime>=startingTime*1000L)&&(currentTime<=endingTime*1000L)) 
+0

l'heure de début et l'heure de fin en millisecondes seulement –

+0

Tout est en millisecondes seulement yar. Heure actuelle, début et fin. Quand je compare "si la partie" n'exécute pas seulement la partie a été exécutée. Heure actuelle = 13577598690000, StartingTime = 1357602840, EndingTime = 1357842540 –

+0

Correct - StartingTime et EndingTime sont en SECONDES. Ajoutez juste trois zéros à l'un ou l'autre, et vous verrez ce que je veux dire. – 323go

0

il suffit de diviser par 1000

Calendar cal = Calendar.getInstance(); 

System.out.println(cal.getTimeInMillis()/1000); 
0

convertir les valeurs longues à chaîne et si la longueur est de> 10 simplement la valeur sous-chaîne (0,10) et vous pouvez également utiliser string .equals ou les reclasser à long pour la comparaison.

Questions connexes