2012-06-08 6 views
1

Comment générer un horodatage unix aléatoire à des moments spécifiques. Par exemple obtenir un temps unix aléatoire entre aujourd'hui et demain. Obtenez la portée nécessaire en générant deux horodatages.Générer un horodatage unix aléatoire

+0

peut-être vous pouvez trouver quelque chose d'utile ici: http://stackoverflow.com/questions/363681/java-generating-random-number-in-a-range – rosco

Répondre

1

Soustraire la différence (valeur absolue). Obtenez un nombre aléatoire entre 0 et 1. Multipliez la différence par le nombre aléatoire. Ajoutez le résultat à l'horodatage précédent.

0

Ce code obtient spécifiquement un temps aléatoire entre aujourd'hui et demain.

public Date randTime(){ 
    Date now = new Date(); 
    Date today = new Date(now.getFullYear(), now.getMonth(), now.getDay(), 0, 0, 0, 0); 
    return new Date(today.getTime() + (long)(Math.random() * 86400000)); 
} 
+1

Je pense que vous voulez dire '(long) (Math.random () * 86400000) ' – Bohemian

+0

En effet. millisecondes, pas de secondes XD –

3
long randomEpoch = epoch1 + Math.abs(new Random().nextLong()) % (epoch2-epoch1); 

epoch1 et epoch2 sont les deux fois.

+0

très bon! J'ai fait: new Date (Math.abs (nouveau Random() .longLong())% new Date(). GetTime()) pour obtenir une date au hasard entre 1/1/1970 à aujourd'hui – ademar111190