129 votes

Comment puis-je obtenir le nombre de millisecondes depuis minuit pour le courant ?

Notez que je ne veux PAS de millis de l'époque. Je veux le nombre de millisecondes actuellement sur l'horloge.

Donc par exemple, j'ai ce bout de code.

Date date2 = new Date(); 
Long time2 = (long) (((((date2.getHours() * 60) + date2.getMinutes())* 60 ) + date2.getSeconds()) * 1000);

Existe-t-il un moyen d'obtenir des millisecondes avec une date ? Existe-t-il un autre moyen de le faire ?

Nota: System.currentTimeMillis() me donne des millis de l'époque, ce qui n'est pas ce que je recherche.

5voto

omarflorez Points 11
  1. long timeNow = System.currentTimeMillis();
  2. System.out.println(new Date(timeNow));

Fri Apr 04 14:27:05 PDT 2014

3voto

RNJ Points 5820

Joda-Time

Je pense que vous pouvez utiliser Joda-Time pour le faire. Jetez un coup d'œil à la DateTime et sa classe getMillisOfSecond méthode. Quelque chose comme

int ms = new DateTime().getMillisOfSecond() ;

1voto

Aldo Infanzon Points 36

J'ai fait le test en utilisant java 8 Peu importe l'ordre, le builder prend toujours 0 millisecondes et la concat entre 26 et 33 millisecondes sous une itération de 1000 concaténations.

J'espère que cela vous aidera, essayez-le avec votre idée

public void count() {

        String result = "";

        StringBuilder builder = new StringBuilder();

        long millis1 = System.currentTimeMillis(),
            millis2;

        for (int i = 0; i < 1000; i++) {
            builder.append("hello world this is the concat vs builder test enjoy");
        }

        millis2 = System.currentTimeMillis();

        System.out.println("Diff: " + (millis2 - millis1));

        millis1 = System.currentTimeMillis();

        for (int i = 0; i < 1000; i++) {
            result += "hello world this is the concat vs builder test enjoy";
        }

        millis2 = System.currentTimeMillis();

        System.out.println("Diff: " + (millis2 - millis1));
    }

0voto

Aniket Thakur Points 10135

En Java 8, vous pouvez simplement faire

ZonedDateTime.now().toInstant().toEpochMilli()

retours : le nombre de millisecondes depuis l'époque de 1970-01-01T00:00:00Z

0voto

Java 8 :

LocalDateTime toDate = LocalDateTime.now();
LocalDateTime fromDate = LocalDateTime.of(toDate.getYear(), toDate.getMonth(), 
toDate.getDayOfMonth(), 0, 0, 0);
long millis = ChronoUnit.MILLIS.between(fromDate, toDate);

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X