112 votes

Comment faire pour obtenir l'année, mois, jour, heures, minutes, secondes et millisecondes de la période actuelle en Java?

Comment puis-je obtenir de l'année, le mois, le jour, les heures, les minutes, les secondes et les millisecondes de l'instant actuel en Java? Je voudrais avoir comme Strings.

275voto

BalusC Points 498232

Faire usage de l' java.util.Calendar.

Calendar now = Calendar.getInstance();
int year = now.get(Calendar.YEAR);
int month = now.get(Calendar.MONTH); // Note: zero based!
int day = now.get(Calendar.DAY_OF_MONTH);
int hour = now.get(Calendar.HOUR_OF_DAY);
int minute = now.get(Calendar.MINUTE);
int second = now.get(Calendar.SECOND);
int millis = now.get(Calendar.MILLISECOND);

System.out.printf("%d-%02d-%02d %02d:%02d:%02d.%03d", year, month + 1, day, hour, minute, second, millis);

Ceci affiche de maintenant (je suis à GMT-4):

2010-04-16 11:15:17.816

Pour convertir un int de String, l'utilisation de String#valueOf().

Si votre intention est après tout arranger et de les afficher dans un homme format convivial, alors je vous suggère d'utiliser java.text.SimpleDateFormat à la place. Cliquez sur le lien, vous verrez une table de modèles de lettres. Plusieurs exemples:

Date now = new Date(); // java.util.Date, NOT java.sql.Date or java.sql.Timestamp!
String format1 = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ").format(now);
String format2 = new SimpleDateFormat("EEE, d MMM yyyy HH:mm:ss Z").format(now);
String format3 = new SimpleDateFormat("yyyyMMddHHmmss").format(now);

System.out.println(format1);
System.out.println(format2);
System.out.println(format3);

Ce qui donne:

2010-04-16T11:15:17.816-0400
Fri, 16 Apr 2010 11:15:17 -0400
20100416111517

31voto

crowne Points 6002

Interrupteur à joda-time et vous pouvez le faire en trois lignes

DateTime jodaTime = new DateTime();

DateTimeFormatter formatter = DateTimeFormat.forPattern("YYYY-MM-dd HH:mm:ss.SSS");
System.out.println("jodaTime = " + formatter.print(jodaTime));

Vous avez également un accès direct aux divers champs de la date sans l'aide d'un Calendrier.

System.out.println("year = " + jodaTime.getYear());
System.out.println("month = " + jodaTime.getMonthOfYear());
System.out.println("day = " + jodaTime.getDayOfMonth());
System.out.println("hour = " + jodaTime.getHourOfDay());
System.out.println("minute = " + jodaTime.getMinuteOfHour());
System.out.println("second = " + jodaTime.getSecondOfMinute());
System.out.println("millis = " + jodaTime.getMillisOfSecond());

La sortie est comme suit:

jodaTime = 2010-04-16 18:09:26.060

year = 2010
month = 4
day = 16
hour = 18
minute = 9
second = 26
millis = 60

2voto

pavel Points 21

Ou de l'utilisation de java.sql.Timestamp. Le calendrier est un peu lourd,je déconseille de l'utiliser dans le code de production. Joda est mieux.

import java.sql.Timestamp;

public class DateTest {

    /**
     * @param args
     */
    public static void main(String[] args) {
        System.out.println(new Timestamp(System.currentTimeMillis()));
    }
}

0voto

de_la_vega_66 Points 3
  import java.util.Calendar;

  int YEAR = Calendar.getInstance().get(Calendar.YEAR);
  int MONTH = Calendar.getInstance().get(Calendar.MONTH);
  int DAY_OF_WEEK = Calendar.getInstance().get(Calendar.DAY_OF_WEEK);
  int HOUR = Calendar.getInstance().get(Calendar.HOUR);
  int MINUTE = Calendar.getInstance().get(Calendar.MINUTE);
  int SECOND = Calendar.getInstance().get(Calendar.SECOND);

-2voto

M. Jessup Points 4588

Regardez la documentation de l'API pour java.util.Calendrier de la classe et de ses dérivés (vous avez peut-être spécifiquement intéressés dans la classe GregorianCalendar).

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