2008-09-19 4 views
10

Quelle est la meilleure façon de générer un datestamp actuel en Java?Générer un datestamp actuel en Java

AAAA-MM-JJ hh-mm-ss

+0

"lorsque vous n'utilisez pas une base de données"? Quelle?? Est-ce que vous interrogez normalement une base de données pour récupérer l'heure actuelle? –

+0

Voulez-vous une chaîne dans ce format ou une sorte d'objet timestamp/date? – sblundy

+0

JohnMilikan: Inutile, vous pouvez sélectionner la date actuelle de sysibm.sysdummy1 (c'est la variante DB2, je ne me souviens pas des tables factices d'Oracles). Tu as raison, ce n'est pas comme ça que je le ferais. – paxdiablo

Répondre

26

Utilisation du JDK standard, vous voudrez utiliser java.text.SimpleDateFormat

Date myDate = new Date(); 
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd:HH-mm-ss"); 
String myDateString = sdf.format(myDate); 

Cependant, si vous avez la possibilité d'utiliser le package Apache Commons Lang, vous pouvez utiliser org.apache.commons. lang.time.FastDateFormat

Date myDate = new Date(); 
FastDateFormat fdf = FastDateFormat.getInstance("yyyy-MM-dd:HH-mm-ss"); 
String myDateString = fdf.format(myDate); 

FastDateFormat a l'avantage d'être thread-safe, de sorte que vous pouvez utiliser une seule instance tout au long de votre application. Il est strictement pour les dates de formatage et ne supporte pas l'analyse comme le fait SimpleDateFormat dans l'exemple suivant:

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd:HH-mm-ss"); 
Date yourDate = sdf.parse("2008-09-18:22-03-15"); 
+1

A partir de la version 3.2 FastDateFormat prend en charge l'analyse :) – Ross

8
Date d = new Date(); 
String formatted = new SimpleDateFormat ("yyyy-MM-dd:HH-mm-ss").format (d); 
System.out.println (formatted); 
+0

Cet exemple ne contient pas le mot-clé "nouveau" avant SimpleDateFormat ("yyyy ... –

+0

@jt merci, corrigé –

+0

N'aime pas les sections de code qui n'ont pas les importations requises." – paxdiablo

0

SimpleDateFormatter est ce que vous voulez.

1

Il y a aussi

long timestamp = System.currentTimeMillis() 

qui est ce que new Date() (@John Millikin) utilise en interne. Une fois que vous avez cela, vous pouvez le formater comme vous le souhaitez.

0

Je pense que vous devez être un peu plus clair dans votre question. En particulier, quel type de données souhaitez-vous à la fin du processus? Un string?

0
final DateFormat formatter = new SimpleDateFormat("yyyy-MM-dd:hh-mm-ss"); 

formatter.format(new Date()); 

Le JavaDoc for SimpleDateFormat fournit des informations sur les chaînes de motif date et l'heure.

Questions connexes