Essayez simplement cet exemple de code: -
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Calendar;
public class Test {
/**
* Main Method
*/
public static void main(String[] args) {
System.out.println(getDate(82233213123L, "dd/MM/yyyy hh:mm:ss.SSS"));
}
/**
* Return date in specified format.
* @param milliSeconds Date in milliseconds
* @param dateFormat Date format
* @return String representing date in specified format
*/
public static String getDate(long milliSeconds, String dateFormat)
{
// Create a DateFormatter object for displaying date in specified format.
SimpleDateFormat formatter = new SimpleDateFormat(dateFormat);
// Create a calendar object that will convert the date and time value in milliseconds to date.
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(milliSeconds);
return formatter.format(calendar.getTime());
}
}
J'espère que cette aide ...
java.util.Date
,java.util.Calendar
etjava.text.SimpleDateFormat
sont maintenant héritage, supplanté par les java.time classes. Une grande partie de la fonctionnalité java.time est rétroportée vers Java 6 et Java 7 dans le projet ThreeTen-Backport . Adapté pour Android antérieur dans le projet ThreeTenABP . Voir Comment utiliser ThreeTenABP… .Convertissez la valeur en millisecondes en
Date
instance et transmettez-la au formateur choisi.la source
Appelez cette fonction
la source
la source
essayez ce code peut vous aider, modifiez-le selon vos besoins
la source
je trouve enfin du code normal qui fonctionne pour moi
la source
tl; dr
java.time
L'approche moderne utilise les classes java.time qui remplacent les anciennes classes de date-heure héritées gênantes utilisées par toutes les autres réponses.
En supposant que vous avez un
long
certain nombre de millisecondes depuis la référence d'époque du premier moment de 1970 en UTC, 1970-01-01T00: 00: 00Z…Pour obtenir une date, il faut un fuseau horaire. Pour un moment donné, la date varie dans le monde entier par zone.
Extrayez une valeur de date uniquement.
Générez une chaîne représentant cette valeur à l'aide du format standard ISO 8601.
Générez une chaîne au format personnalisé.
Conseil: envisagez de laisser java.time localiser automatiquement pour vous plutôt que de coder en dur un modèle de formatage. Utilisez les
DateTimeFormatter.ofLocalized…
méthodes.À propos de java.time
Le framework java.time est intégré à Java 8 et versions ultérieures. Ces classes supplantent les anciens gênants hérités des classes date-heure tels que
java.util.Date
,Calendar
, etSimpleDateFormat
.Le projet Joda-Time , désormais en mode maintenance , conseille la migration vers les classes java.time .
Pour en savoir plus, consultez le didacticiel Oracle . Et recherchez Stack Overflow pour de nombreux exemples et explications. La spécification est JSR 310 .
Vous pouvez échanger des objets java.time directement avec votre base de données. Utilisez un pilote JDBC compatible avec JDBC 4.2 ou version ultérieure. Pas besoin de chaînes, pas besoin de
java.sql.*
classes.Où obtenir les classes java.time?
Le projet ThreeTen-Extra étend java.time avec des classes supplémentaires. Ce projet est un terrain d'essai pour d'éventuels futurs ajouts à java.time. Vous trouverez peut - être des classes utiles ici, comme
Interval
,YearWeek
,YearQuarter
et plus .la source
Court et efficace:
la source
la source
la source
Je cherchais un moyen efficace de le faire depuis un certain temps et le meilleur que j'ai trouvé est:
Avantages:
Désavantages:
Vous pouvez mettre en cache l'objet java.text.DateFormat, mais ce n'est pas threadsafe. C'est OK si vous l'utilisez sur le thread d'interface utilisateur.
la source
la source
C'est le moyen le plus simple d'utiliser Kotlin
la source
SimpleDateFormat
classe depuis longtemps obsolète et notoirement gênante . Du moins pas comme première option. Et pas sans aucune réserve. Aujourd'hui, nous avons tellement mieux avecjava.time
l'API de date et d'heure Java moderne, et sesDateTimeFormatter
. Oui, vous pouvez l'utiliser sur Android. Pour les anciens appareils Android, utilisez le désugarage ou consultez Comment utiliser ThreeTenABP dans Android Project .hh
? Veuillez vérifier la différence entre les majuscules et les minuscules ici.return Instant.ofEpochMilli(millis).atZone(ZoneId.systemDefault()).format(DateTimeFormatter.ofPattern(DATE_FORMAT, Locale.US))
. Oui, c'est plus long car cela donne plus d'informations sur ce qui se passe, donc c'est un avantage.Utilisez SimpleDateFormat pour Android N et supérieur. Utilisez le calendrier pour les versions antérieures par exemple:
Sortie:
fileName avant: 2019-04-12-07: 14: 47 // utilise SimpleDateFormat
fileName après: 2019-4-12-7: 13: 12 // utilise Calender
la source
Vous pouvez créer java.util.Date en millisecondes. Et puis l'a converti en chaîne avec java.text.DateFormat.
la source