web-dev-qa-db-fra.com

Obtenir l'heure et la date sur Android

Comment obtenir l'heure et la date actuelles dans une application Android?

960
M7M

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

1136
user658042

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.

482

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());
310
Miciurash

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
197
ANemati

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.

124
kaneda

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
75
Kirit

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);

 first

 second  third

52
Amitsharma

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();
47
JosephL

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 .

35
Himanshu Aggarwal

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);
31
SkateJerrySkate

tl; dr

Instant.now()  // Current moment in UTC.

…ou…

ZonedDateTime.now( ZoneId.of( "America/Montreal" ) )  // In a particular time zone

Détails

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. 

Java.time

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.

Fuseau horaire

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 );

Générer des cordes

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é.

ISO 8601

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]

Format personnalisé

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 );

Localisation

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.

À propos de Java.time

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? 

  • Java SE 8 , Java SE 9 , Java SE 10 , et versions ultérieures
    • Intégré. 
    • Une partie de l'API Java standard avec une implémentation fournie.
    • Java 9 ajoute quelques fonctionnalités et corrections mineures.
  • Java SE 6 et Java SE 7
    • Une grande partie de la fonctionnalité Java.time est rétroportée vers Java 6 et 7 dans ThreeTen-Backport .
  • Android
    • Les versions ultérieures d'Android regroupent des implémentations des classes Java.time.
    • Pour les anciens Android (<26), le projet ThreeTenABP s’adapte ThreeTen-Backport (mentionné ci-dessus). Voir Comment utiliser ThreeTenABP… .

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 _.

29
Basil Bourque

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);
24
eLobato
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
22
Vignesh KM
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);
16
Alex Muriithi

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
13
Elenasys
    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);
12
duggu
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;

12
Sam Haque

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.

11
Quadroid

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

9
Omar Faroque Anik

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 ));
9
RejoylinLokeshwaran
Time now = new Time();
now.setToNow();

Essayez cela fonctionne pour moi aussi.

8
TheMan
Date todayDate = new Date();
todayDate.getDay();
todayDate.getHours();
todayDate.getMinutes();
todayDate.getMonth();
todayDate.getTime();
8
Muhammad Aamir Ali

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".

8
Annabelle

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
7
Vipul Prajapati

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());
7
Ali Ziaee

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

5
Charlie

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);
}
4
Danger

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);
4
Akshay Paliwal

Essaye ça

String mytime = (DateFormat.format("dd-MM-yyyy hh:mm:ss", new Java.util.Date()).toString());
4
Abhinaw Kumar

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));
3
Kinjal

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();
1
Pradeep Sheoran

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);
1
Hasib Akter

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);
1
Manikandan K

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.

0
FilipMarusca

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);
}
0
pavel
    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);
0
Bryan Ibrahim

Kotlin

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
}
0
Khemraj
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. 

0
Jan Bergström