Comment obtenir l'heure et la date actuelles dans une application Android?
Vous pouvez utiliser:
import Java.util.Calendar
Date currentTime = Calendar.getInstance().getTime();
Le calendrier contient de nombreuses constantes pour tout ce dont vous avez besoin.
Modifier:
Vérifier Documentation de classe du calendrier
Vous pouvez ( mais ne devriez plus - voir ci-dessous!) Utiliser Android.text.format.Time :
Time now = new Time();
now.setToNow();
De la référence liée ci-dessus:
La classe Time remplace plus rapidement les classes Java.util.Calendar et Java.util.GregorianCalendar. Une instance de la classe Time représente un moment dans le temps, spécifié avec une seconde précision.
NOTE 1: Cela fait plusieurs années que j'ai écrit cette réponse, et il s'agit d'une ancienne classe spécifique à Android et maintenant obsolète. Google maintenant dit que "sa classe a un certain nombre de problèmes et il est recommandé que GregorianCalendar soit utilisé à la place".
NOTE 2: Même si la classe Time
a une méthode toMillis(ignoreDaylightSavings)
, c'est simplement une commodité à transmettre aux méthodes qui attendent temps en millisecondes. La valeur de temps est seulement précise à une seconde ; la partie en millisecondes est toujours 000
. Si vous faites une boucle
Time time = new Time(); time.setToNow();
Log.d("TIME TEST", Long.toString(time.toMillis(false)));
... do something that takes more than one millisecond, but less than one second ...
La séquence résultante répétera la même valeur, telle que 1410543204000
, jusqu'à ce que la seconde suivante ait commencé, moment auquel 1410543205000
commencera à se répéter.
Si vous souhaitez obtenir la date et l'heure dans un modèle spécifique, vous pouvez utiliser les éléments suivants:
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd_HHmmss");
String currentDateandTime = sdf.format(new Date());
Pour ceux qui préfèrent un format personnalisé, vous pouvez utiliser:
DateFormat df = new SimpleDateFormat("EEE, d MMM yyyy, HH:mm");
String date = df.format(Calendar.getInstance().getTime());
Considérant que vous pouvez avoir des modèles DateFormat tels que:
"yyyy.MM.dd G 'at' HH:mm:ss z" ---- 2001.07.04 AD at 12:08:56 PDT
"hh 'o''clock' a, zzzz" ----------- 12 o'clock PM, Pacific Daylight Time
"EEE, d MMM yyyy HH:mm:ss Z"------- Wed, 4 Jul 2001 12:08:56 -0700
"yyyy-MM-dd'T'HH:mm:ss.SSSZ"------- 2001-07-04T12:08:56.235-0700
"yyMMddHHmmssZ"-------------------- 010704120856-0700
"K:mm a, z" ----------------------- 0:08 PM, PDT
"h:mm a" -------------------------- 12:08 PM
"EEE, MMM d, ''yy" ---------------- Wed, Jul 4, '01
En fait, il est plus sûr de définir le fuseau horaire actuel défini sur l'appareil avec Time.getCurrentTimezone()
, sinon vous obtiendrez l'heure actuelle en UTC.
Time today = new Time(Time.getCurrentTimezone());
today.setToNow();
Ensuite, vous pouvez obtenir tous les champs de date de votre choix, comme par exemple:
textViewDay.setText(today.monthDay + ""); // Day of the month (1-31)
textViewMonth.setText(today.month + ""); // Month (0-11)
textViewYear.setText(today.year + ""); // Year
textViewTime.setText(today.format("%k:%M:%S")); // Current time
Voir Android.text.format.Time class pour tous les détails.
METTRE À JOUR
Comme le soulignent de nombreuses personnes, Google indique que cette classe présente un certain nombre de problèmes et qu'elle n'est plus censée être utilisée:
Cette classe a un certain nombre de problèmes et il est recommandé que GregorianCalendar est utilisé à la place.
Problèmes connus:
Pour des raisons historiques, lors de l'exécution de tous les calculs de temps l'arithmétique a actuellement lieu en utilisant des entiers 32 bits. Cela limite la plage de temps fiable représentable de 1902 à 2037.Voir le article de wikipedia sur le problème de l'année 2038 pour plus de détails. Ne comptez pas sur Ce comportement; cela pourrait changer dans le futur. Appel switchTimezone (String) à une date qui ne peut pas exister, telle qu'un mur l'heure qui a été ignorée en raison d'une transition à l'heure d'été donne une date en 1969 (c'est-à-dire -1 ou 1 seconde avant le 1er janvier 1970 UTC). Une grande partie de la le formatage/l'analyse suppose ASCII text et n'est donc pas adapté pour une utilisation avec des scripts non-ASCII.
Pour la date et l'heure actuelles, utilisez:
String mydate = Java.text.DateFormat.getDateTimeInstance().format(Calendar.getInstance().getTime());
Quelles sorties:
Feb 27, 2012 5:41:23 PM
Essayez avec cette façon Tous les formats sont donnés ci-dessous pour obtenir le format de date et heure.
Calendar c = Calendar.getInstance();
SimpleDateFormat dateformat = new SimpleDateFormat("dd-MMM-yyyy hh:mm:ss aa");
String datetime = dateformat.format(c.getTime());
System.out.println(datetime);
Pour connaître l’heure actuelle, vous pouvez utiliser System.currentTimeMillis()
qui est standard en Java. Ensuite, vous pouvez l'utiliser pour créer une date
Date currentDate = new Date(System.currentTimeMillis());
Et comme mentionné par d'autres pour créer un temps
Time currentTime = new Time();
currentTime.setToNow();
Vous pouvez utiliser le code:
Calendar c = Calendar.getInstance();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String strDate = sdf.format(c.getTime());
Sortie:
2014-11-11 00:47:55
Vous obtenez également quelques options de formatage supplémentaires pour SimpleDateFormat
à partir de ici .
Facile, vous pouvez disséquer l'heure pour obtenir des valeurs distinctes pour l'heure actuelle, comme suit:
Calendar cal = Calendar.getInstance();
int millisecond = cal.get(Calendar.MILLISECOND);
int second = cal.get(Calendar.SECOND);
int minute = cal.get(Calendar.MINUTE);
//12 hour format
int hour = cal.get(Calendar.HOUR);
//24 hour format
int hourofday = cal.get(Calendar.HOUR_OF_DAY);
Il en va de même pour la date, comme suit:
Calendar cal = Calendar.getInstance();
int dayofyear = cal.get(Calendar.DAY_OF_YEAR);
int year = cal.get(Calendar.YEAR);
int dayofweek = cal.get(Calendar.DAY_OF_WEEK);
int dayofmonth = cal.get(Calendar.DAY_OF_MONTH);
Instant.now() // Current moment in UTC.
…ou…
ZonedDateTime.now( ZoneId.of( "America/Montreal" ) ) // In a particular time zone
Les autres réponses, bien que correctes, sont obsolètes. Les anciennes classes date-heure se sont avérées mal conçues, déroutantes et gênantes.
Ces anciennes classes ont été supplantées par le framework Java.time .
Ces nouvelles classes sont inspirées du très fructueux projet Joda-Time , défini par JSR 310 , et étendu par le projet ThreeTen-Extra .
Voir le tutoriel Oracle .
Instant
Un Instant
est un moment sur la ligne temporelle dans UTC avec une résolution allant jusqu'à nanosecondes .
Instant instant = Instant.now(); // Current moment in UTC.
Appliquez un fuseau horaire ( ZoneId
) pour obtenir un ZonedDateTime
. Si vous omettez le fuseau horaire, le fuseau horaire par défaut actuel de votre JVM est appliqué implicitement. Mieux vaut spécifier explicitement le fuseau horaire souhaité/attendu.
Utilisez noms de fuseau horaire appropriés au format continent/region
, par exemple America/Montreal
, Europe/Brussels
ou Asia/Kolkata
. N'utilisez jamais les abréviations de 3-4 lettres telles que EST
ou IST
car elles ne sont ni normalisées ni uniques.
ZoneId zoneId = ZoneId.of( "America/Montreal" ); // Or "Asia/Kolkata", "Europe/Paris", and so on.
ZonedDateTime zdt = ZonedDateTime.ofInstant( instant , zoneId );
Vous pouvez facilement générer une String
en tant que représentation textuelle de la valeur date-heure. Vous pouvez choisir un format standard, votre propre format personnalisé ou un format automatiquement localisé.
Vous pouvez appeler les méthodes toString
pour obtenir du texte mis en forme à l'aide de la norme commune et sensible ISO 8601 .
String output = instant.toString();
2016-03-23T03: 09: 01.613Z
Notez que pour ZonedDateTime
, la méthode toString
étend la norme ISO 8601 en ajoutant le nom du fuseau horaire entre crochets. Information extrêmement utile et importante, mais pas standard.
2016-03-22T20: 09: 01.613-08: 00 [America/Los_Angeles]
Vous pouvez également spécifier votre propre modèle de formatage avec la classe DateTimeFormatter
.
DateTimeFormatter formatter = DateTimeFormatter.ofPattern( "dd/MM/yyyy hh:mm a" );
Spécifiez un Locale
pour une langue humaine (anglais, français , etc.) à utiliser pour traduire le nom du jour/mois et définir les normes culturelles telles que l'ordre des années et mois et date. Notez que Locale
n'a rien à voir avec le fuseau horaire.
formatter = formatter.withLocale( Locale.US ); // Or Locale.CANADA_FRENCH or such.
String output = zdt.format( formatter );
Mieux encore, laissez Java.time faire le travail de localisation automatique.
DateTimeFormatter formatter = DateTimeFormatter.ofLocalizedDateTime( FormatStyle.MEDIUM );
String output = zdt.format( formatter.withLocale( Locale.US ) ); // Or Locale.CANADA_FRENCH and so on.
Le cadre Java.time est intégré à Java 8 et versions ultérieures. Ces classes supplantent les anciennes classes gênantes héritées _ date-heure telles que Java.util.Date
, Calendar
_, & SimpleDateFormat
.
Le projet Joda-Time , désormais en mode { mode maintenance }, conseille la migration vers les classes Java.time .
Pour en savoir plus, consultez le Oracle Tutorial . 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 une 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 ajouts à Java.time. Vous pouvez y trouver des classes utiles telles que Interval
_, YearWeek
, YearQuarter
_ et plus _.
Il y a plusieurs options car Android est principalement Java, mais si vous souhaitez l'écrire dans un textView, le code suivant ferait l'affaire:
String currentDateTimeString = DateFormat.getDateInstance().format(new Date());
// textView is the TextView view that should display it
textView.setText(currentDateTimeString);
SimpleDateFormat databaseDateTimeFormate = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
SimpleDateFormat databaseDateFormate = new SimpleDateFormat("yyyy-MM-dd");
SimpleDateFormat sdf1 = new SimpleDateFormat("dd.MM.yy");
SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy.MM.dd G 'at' hh:mm:ss z");
SimpleDateFormat sdf3 = new SimpleDateFormat("EEE, MMM d, ''yy");
SimpleDateFormat sdf4 = new SimpleDateFormat("h:mm a");
SimpleDateFormat sdf5 = new SimpleDateFormat("h:mm");
SimpleDateFormat sdf6 = new SimpleDateFormat("H:mm:ss:SSS");
SimpleDateFormat sdf7 = new SimpleDateFormat("K:mm a,z");
SimpleDateFormat sdf8 = new SimpleDateFormat("yyyy.MMMMM.dd GGG hh:mm aaa");
String currentDateandTime = databaseDateTimeFormate.format(new Date()); //2009-06-30 08:29:36
String currentDateandTime = databaseDateFormate.format(new Date()); //2009-06-30
String currentDateandTime = sdf1.format(new Date()); //30.06.09
String currentDateandTime = sdf2.format(new Date()); //2009.06.30 AD at 08:29:36 PDT
String currentDateandTime = sdf3.format(new Date()); //Tue, Jun 30, '09
String currentDateandTime = sdf4.format(new Date()); //8:29 PM
String currentDateandTime = sdf5.format(new Date()); //8:29
String currentDateandTime = sdf6.format(new Date()); //8:28:36:249
String currentDateandTime = sdf7.format(new Date()); //8:29 AM,PDT
String currentDateandTime = sdf8.format(new Date()); //2009.June.30 AD 08:29 AM
Format de date Patterns
G Era designator (before christ, after christ)
y Year (e.g. 12 or 2012). Use either yy or yyyy.
M Month in year. Number of M's determine length of format (e.g. MM, MMM or MMMMM)
d Day in month. Number of d's determine length of format (e.g. d or dd)
h Hour of day, 1-12 (AM / PM) (normally hh)
H Hour of day, 0-23 (normally HH)
m Minute in hour, 0-59 (normally mm)
s Second in minute, 0-59 (normally ss)
S Millisecond in second, 0-999 (normally SSS)
E Day in week (e.g Monday, Tuesday etc.)
D Day in year (1-366)
F Day of week in month (e.g. 1st Thursday of December)
w Week in year (1-53)
W Week in month (0-5)
a AM / PM marker
k Hour in day (1-24, unlike HH's 0-23)
K Hour in day, AM / PM (0-11)
z Time Zone
final Calendar c = Calendar.getInstance();
int mYear = c.get(Calendar.YEAR);
int mMonth = c.get(Calendar.MONTH);
int mDay = c.get(Calendar.DAY_OF_MONTH);
textView.setText(""+mDay+"-"+mMonth+"-"+mYear);
C'est une méthode qui sera utile pour obtenir la date et l'heure:
private String getDate(){
DateFormat dfDate = new SimpleDateFormat("yyyy/MM/dd");
String date=dfDate.format(Calendar.getInstance().getTime());
DateFormat dfTime = new SimpleDateFormat("HH:mm");
String time = dfTime.format(Calendar.getInstance().getTime());
return date + " " + time;
}
Vous pouvez appeler cette méthode et obtenir les valeurs de date et heure actuelles:
2017/01//09 19:23
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
Calendar cal = Calendar.getInstance();
System.out.println("time => " + dateFormat.format(cal.getTime()));
String time_str = dateFormat.format(cal.getTime());
String[] s = time_str.split(" ");
for (int i = 0; i < s.length; i++) {
System.out.println("date => " + s[i]);
}
int year_sys = Integer.parseInt(s[0].split("/")[0]);
int month_sys = Integer.parseInt(s[0].split("/")[1]);
int day_sys = Integer.parseInt(s[0].split("/")[2]);
int hour_sys = Integer.parseInt(s[1].split(":")[0]);
int min_sys = Integer.parseInt(s[1].split(":")[1]);
System.out.println("year_sys => " + year_sys);
System.out.println("month_sys => " + month_sys);
System.out.println("day_sys => " + day_sys);
System.out.println("hour_sys => " + hour_sys);
System.out.println("min_sys => " + min_sys);
Time time = new Time();
time.setToNow();
System.out.println("time: " + time.hour+":"+time.minute);
Cela vous donnera, par exemple, 12:32.
N'oubliez pas d'importer Android.text.format.Time;
Vous pouvez également utiliser Android.os.SystemClock . Par exemple, SystemClock.elapsedRealtime () vous donnera une lecture plus précise de l'heure lorsque le téléphone est en veille.
Pour un format d’heure et de date personnalisé:
SimpleDateFormat dateFormat= new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZZZZZ",Locale.ENGLISH);
String cDateTime=dateFormat.format(new Date());
Le format de sortie est le suivant: 2015-06-18T10: 15: 56-05: 00
Si vous avez besoin de la date actuelle,
Calendar cc = Calendar.getInstance();
int year=cc.get(Calendar.YEAR);
int month=cc.get(Calendar.MONTH);
int mDay = cc.get(Calendar.DAY_OF_MONTH);
System.out.println("Date", year+":"+month+":"+mDay);
Si vous avez besoin de l'heure actuelle,
int mHour = cc.get(Calendar.HOUR_OF_DAY);
int mMinute = cc.get(Calendar.MINUTE);
System.out.println("time_format"+String.format("%02d:%02d", mHour , mMinute ));
Time now = new Time();
now.setToNow();
Essayez cela fonctionne pour moi aussi.
Date todayDate = new Date();
todayDate.getDay();
todayDate.getHours();
todayDate.getMinutes();
todayDate.getMonth();
todayDate.getTime();
Vous pouvez obtenir la date en utilisant:
Time t = new Time(Time.getCurrentTimezone());
t.setToNow();
String date = t.format("%Y/%m/%d");
Cela vous donnera un résultat sous forme de Nice, comme dans cet exemple: "2014/02/09".
Pour la date et l'heure actuelles avec le format, utilisez
en Java
Calendar c = Calendar.getInstance();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String strDate = sdf.format(c.getTime());
Log.d("Date","DATE : " + strDate)
en Kotlin
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
val current = LocalDateTime.now()
val formatter = DateTimeFormatter.ofPattern("dd.MM.yyyy. HH:mm:ss")
var myDate: String = current.format(formatter)
Log.d("Date","DATE : " + myDate)
} else {
var date = Date()
val formatter = SimpleDateFormat("MMM dd yyyy HH:mma")
val myDate: String = formatter.format(date)
Log.d("Date","DATE : " + myDate)
}
Modèles de formateur de date
"yyyy.MM.dd G 'at' HH:mm:ss z" ---- 2001.07.04 AD at 12:08:56 PDT
"hh 'o''clock' a, zzzz" ----------- 12 o'clock PM, Pacific Daylight Time
"EEE, d MMM yyyy HH:mm:ss Z"------- Wed, 4 Jul 2001 12:08:56 -0700
"yyyy-MM-dd'T'HH:mm:ss.SSSZ"------- 2001-07-04T12:08:56.235-0700
"yyMMddHHmmssZ"-------------------- 010704120856-0700
"K:mm a, z" ----------------------- 0:08 PM, PDT
"h:mm a" -------------------------- 12:08 PM
"EEE, MMM d, ''yy" ---------------- Wed, Jul 4, '01
vous pouvez simplement utiliser le code suivant:
DateFormat df = new SimpleDateFormat("HH:mm"); //format time
String time = df.format(Calendar.getInstance().getTime());
DateFormat df1=new SimpleDateFormat("yyyy/MM/dd");//foramt date
String date=df1.format(Calendar.getInstance().getTime());
Eh bien, j’ai eu des problèmes avec certaines réponses de l’API, alors je fusionne ce code, j’espère que cela leur servira les gars:
Time t = new Time(Time.getCurrentTimezone());
t.setToNow();
String date1 = t.format("%Y/%m/%d");
Date date = new Date(System.currentTimeMillis());
SimpleDateFormat dateFormat = new SimpleDateFormat("hh:mm aa",
Locale.ENGLISH);
String var = dateFormat.format(date);
String horafecha = var+ " - " + date1;
tvTime.setText(horafecha);
Sortie: 03h25 PM - 2017/10/03
La méthode ci-dessous renvoie la date et l'heure actuelles dans String. Utilisez un fuseau horaire différent en fonction de votre fuseau horaire actuel.J'ai utilisé l'heure GMT
public static String GetToday(){
Date presentTime_Date = Calendar.getInstance().getTime();
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
dateFormat.setTimeZone(TimeZone.getTimeZone("GMT"));
return dateFormat.format(presentTime_Date);
}
Vous devez utiliser la classe Calender selon la nouvelle API. La classe de date est obsolète maintenant.
Calendar cal = Calendar.getInstance();
String date = ""+cal.get(Calendar.DATE)+"-"+(cal.get(Calendar.MONTH)+1)+"-"+cal.get(Calendar.YEAR);
String time = ""+cal.get(Calendar.HOUR_OF_DAY)+":"+cal.get(Calendar.MINUTE);
Essaye ça
String mytime = (DateFormat.format("dd-MM-yyyy hh:mm:ss", new Java.util.Date()).toString());
Essayez ce code s'il affiche la date et l'heure actuelles
Date date = new Date(System.currentTimeMillis());
SimpleDateFormat dateFormat = new SimpleDateFormat("hh:mm aa",
Locale.ENGLISH);
String var = dateFormat.format(date));
Voici quelques moyens d'obtenir l'heure et la date
public static void getCurrentTimeUsingDate() {
Date date = new Date();
String strDateFormat = "hh:mm:ss a";
DateFormat dateFormat = new SimpleDateFormat(strDateFormat);
String formattedDate= dateFormat.format(date);
Toast.makeText(this, formattedDate, Toast.LENGTH_SHORT).show();
}
Temps d'utilisation du calendrier
public static void getCurrentTimeUsingCalendar() {
Calendar cal = Calendar.getInstance();
Date date=cal.getTime();
DateFormat dateFormat = new SimpleDateFormat("HH:mm:ss");
String formattedDate=dateFormat.format(date);
Toast.makeText(this, formattedDate, Toast.LENGTH_SHORT).show();
}
Heure et date locales
public static void getCurrentTime(){
System.out.println("-----Current time of your time zone-----");
LocalTime time = LocalTime.now();
Toast.makeText(this, time, Toast.LENGTH_SHORT).show();
}
Zone sage Heure
public static void getCurrentTimeWithTimeZone(){
Toast.makeText(this, "Current time of a different time zone using LocalTime", Toast.LENGTH_SHORT).show();
ZoneId zoneId = ZoneId.of("America/Los_Angeles");
LocalTime localTime=LocalTime.now(zoneId);
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("HH:mm:ss");
String formattedTime=localTime.format(formatter);
Toast.makeText (this, formattedTime, Toast.LENGTH_SHORT) .show ();
}
Un moyen facile d'obtenir l'heure et la date actuelles
import Java.util.Calendar
Date currentTime = Calendar.getInstance().getTime();
Vous pouvez obtenir le heure et date séparément du calendrier.
// You can pass time zone and Local to getInstance() as parameter
Calendar calendar = Calendar.getInstance();
int currentHour = calendar.get(Calendar.HOUR_OF_DAY);
int currentMinute = calendar.get(Calendar.MINUTE);
int second = calendar.get(Calendar.SECOND);
int date = calendar.get(Calendar.DAY_OF_MONTH);
int month = calendar.get(Calendar.MONTH);
int year = calendar.get(Calendar.YEAR);
essayez d'utiliser le code ci-dessous:
Date date = new Date();
SimpleDateFormat dateFormatWithZone = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'",Locale.getDefault());
String currentDate = dateFormatWithZone.format(date);
Le package com.google.gson.internal.bind.util contient une classe ISO8601Utils-utils. Vous pouvez donc utiliser cette option si vous utilisez GSON dans votre application.
Il prend en charge les millisecondes et les fuseaux horaires, ce qui en fait une très bonne option tout de suite.
Vous pouvez obtenir votre heure locale avec l'heure GMT à partir de cette fonction
public String getCurrentDate() {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy MMM dd hh:mm a zzz");
Date date = new Date();
sdf.setTimeZone(TimeZone.getTimeZone("GMT+6:00"));
return sdf.format(date);
}
long totalSeconds = currentTimeMillis / 1000;
int currentSecond = (int)totalSeconds % 60;
long totalMinutes = totalSeconds / 60;
int currentMinute = (int)totalMinutes % 60;
long totalHours = totalMinutes / 60;
int currentHour = (int)totalHours % 12;
TextView tvTime = findViewById(R.id.tvTime);
tvTime.setText((currentHour + OR - TIME YOU ARE FROM GMT) + ":" + currentMinute + ":" + currentSecond);
Voici différentes manières d’obtenir la date et l’heure actuelles en kotlin.
fun main(args: Array<String>) {
println(System.currentTimeMillis()) // current millisecond
val date = Calendar.getInstance().time // current date object
val date1 = Date(System.currentTimeMillis())
println(date.toString())
println(date1.toString())
val now = Time(System.currentTimeMillis()) // current time object
println(now.toString())
val sdf = SimpleDateFormat("yyyy:MM:dd h:mm a", Locale.getDefault())
println(sdf.format(Date())) // format current date
println(DateFormat.getDateTimeInstance().format(System.currentTimeMillis())) // using getDateTimeInstance()
println(LocalDateTime.now().toString()) // Java 8
println(ZonedDateTime.now().toString()) // Java 8
}
String DataString=DateFormat.getDateInstance(DateFormat.SHORT).format(Calendar.getInstance().getTime());
Pour obtenir la date abrégée, chaîne dans le format localisé de l’unité.
Je ne comprends pas pourquoi tant de réponses sont des formats de date et d'heure codés en dur lorsque le système d'exploitation/Java fournit une localisation correcte des dates et des heures? Ne vaut-il pas mieux toujours utiliser les formats de l'unité que ceux du programmeur?
Il fournit également la lecture des dates dans des formats localisés:
DateFormat format = DateFormat.getDateInstance(DateFormat.SHORT);
Date date=null;
try {
date = format.parse(DateString);
}
catch(ParseException e) {
}
Ensuite, il appartient à l'utilisateur de définir le format pour afficher les dates et l'heure et pas vous? Indépendamment des langues, etc., il existe différents formats dans différents pays avec la même langue.