Comment afficher la date et l'heure actuelles dans une application Android?
Comment afficher la date et l'heure actuelles dans une application Android?
Réponses:
D'accord, pas si difficile car il existe plusieurs méthodes pour le faire. Je suppose que vous voulez mettre la date et l'heure actuelles dans un fichier TextView
.
String currentDateTimeString = java.text.DateFormat.getDateTimeInstance().format(new Date());
// textView is the TextView view that should display it
textView.setText(currentDateTimeString);
Il y a plus à lire dans la documentation qui peut être facilement trouvée ici . Vous y trouverez plus d'informations sur la façon de changer le format utilisé pour la conversion.
"HH:mm:ss"
! Complètement:currentTimeString = new SimpleDateFormat("HH:mm:ss").format(new Date());
DateFormat.getTimeInstance()
et DateFormat.getDateTimeInstance()
.
public class XYZ extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//setContentView(R.layout.main);
Calendar c = Calendar.getInstance();
System.out.println("Current time => "+c.getTime());
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String formattedDate = df.format(c.getTime());
// formattedDate have current date/time
Toast.makeText(this, formattedDate, Toast.LENGTH_SHORT).show();
// Now we display formattedDate value in TextView
TextView txtView = new TextView(this);
txtView.setText("Current Date and Time : "+formattedDate);
txtView.setGravity(Gravity.CENTER);
txtView.setTextSize(20);
setContentView(txtView);
}
}
SimpleDateFormat
parce que j'ai obtenu ne peut pas trouver de classe de symboles
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Thread myThread = null;
Runnable runnable = new CountDownRunner();
myThread= new Thread(runnable);
myThread.start();
}
public void doWork() {
runOnUiThread(new Runnable() {
public void run() {
try{
TextView txtCurrentTime= (TextView)findViewById(R.id.lbltime);
Date dt = new Date();
int hours = dt.getHours();
int minutes = dt.getMinutes();
int seconds = dt.getSeconds();
String curTime = hours + ":" + minutes + ":" + seconds;
txtCurrentTime.setText(curTime);
}catch (Exception e) {}
}
});
}
class CountDownRunner implements Runnable{
// @Override
public void run() {
while(!Thread.currentThread().isInterrupted()){
try {
doWork();
Thread.sleep(1000);
} catch (InterruptedException e) {
Thread.currentThread().interrupt();
}catch(Exception e){
}
}
}
}
Les choix évidents pour afficher l'heure sont la AnalogClock
vue et la DigitalClock
vue .
Par exemple, la disposition suivante:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical">
<AnalogClock
android:layout_width="fill_parent"
android:layout_height="wrap_content"/>
<DigitalClock
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:textSize="20sp"/>
</LinearLayout>
Ressemble à ça:
Si vous souhaitez une seule ligne de code:
String date = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(Calendar.getInstance().getTime());
Le résultat est "2016-09-25 16:50:34"
Ma propre solution de travail:
Calendar c = Calendar.getInstance();
String sDate = c.get(Calendar.YEAR) + "-"
+ c.get(Calendar.MONTH)
+ "-" + c.get(Calendar.DAY_OF_MONTH)
+ " at " + c.get(Calendar.HOUR_OF_DAY)
+ ":" + c.get(Calendar.MINUTE);
J'espère que cela t'aides!
De Comment obtenir la date complète avec le format correct?:
Veuillez utiliser
android.text.format.DateFormat.getDateFormat(Context context)
android.text.format.DateFormat.getTimeFormat(Context context)
pour obtenir des formats d'heure et de date valides dans le sens des paramètres utilisateur actuels (format d'heure 12/24, par exemple).
import android.text.format.DateFormat;
private void some() {
final Calendar t = Calendar.getInstance();
textView.setText(DateFormat.getTimeFormat(this/*Context*/).format(t.getTime()));
}
Voici le code qui a fonctionné pour moi. Veuillez essayer ceci. Il s'agit d'une méthode simple qui prend l'heure et la date d'un appel système. La méthode Datetime () où vous en avez besoin.
public static String Datetime()
{
Calendar c = Calendar .getInstance();
System.out.println("Current time => "+c.getTime());
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mms");
formattedDate = df.format(c.getTime());
return formattedDate;
}
Utilisation:
Calendar c = Calendar.getInstance();
int seconds = c.get(Calendar.SECOND);
int minutes = c.get(Calendar.MINUTE);
int hour = c.get(Calendar.HOUR);
String time = hour + ":" + minutes + ":" + seconds;
int day = c.get(Calendar.DAY_OF_MONTH);
int month = c.get(Calendar.MONTH);
int year = c.get(Calendar.YEAR);
String date = day + "/" + month + "/" + year;
// Assuming that you need date and time in a separate
// textview named txt_date and txt_time.
txt_date.setText(date);
txt_time.setText(time);
Calendar c = Calendar.getInstance();
int month=c.get(Calendar.MONTH)+1;
String sDate = c.get(Calendar.YEAR) + "-" + month+ "-" + c.get(Calendar.DAY_OF_MONTH) +
"T" + c.get(Calendar.HOUR_OF_DAY)+":"+c.get(Calendar.MINUTE)+":"+c.get(Calendar.SECOND);
Cela donnera un format d'heure de date comme 2010-05-24T18: 13: 00
En fait, vous êtes mieux avec le widget TextClock. Il gère toute la complexité pour vous et respectera les préférences de l'utilisateur 12/24 heures. http://developer.android.com/reference/android/widget/TextClock.html
Pour afficher la fonction de date actuelle:
Calendar c = Calendar.getInstance();
SimpleDateFormat df = new SimpleDateFormat("dd-MMM-yyyy");
String date = df.format(c.getTime());
Date.setText(date);
Vous devez vouloir importer
import java.text.SimpleDateFormat; import java.util.Calendar;
Vous devez vouloir utiliser
TextView Date;
Date = (TextView) findViewById(R.id.Date);
Copiez simplement ce code et espérez que cela fonctionne bien pour vous.
Calendar c = Calendar.getInstance();
SimpleDateFormat sdf = new SimpleDateFormat("dd:MMMM:yyyy HH:mm:ss a");
String strDate = sdf.format(c.getTime());
Essayez le code ci-dessous:
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);
Vous pouvez essayer de cette façon
Calendar calendar = Calendar.getInstance();
SimpleDateFormat mdformat = new SimpleDateFormat("HH:mm:ss");
String strDate = "Current Time : " + mdformat.format(calendar.getTime());
Si vous souhaitez travailler avec la date / l'heure dans Android, je vous recommande d'utiliser ThreeTenABP qui est une version du java.time.*
package (disponible à partir de l'API 26 sur Android) livrée avec Java 8 disponible en remplacement de java.util.Date
et java.util.Calendar
.
LocalDate localDate = LocalDate.now();
DateTimeFormatter formatter = DateTimeFormatter.ofLocalizedDate(FormatStyle.MEDIUM);
String date = localDate.format(formatter);
textView.setText(date);
ZonedDateTime
au lieu de LocalDate
et DateTimeFormatter.ofLocalizedDateTime
au lieu de ofLocalizedDate
. Sinon, le code sera le même.
Pour afficher la date et l'heure actuelles sur Textview
/// For Show Date
String currentDateString = DateFormat.getDateInstance().format(new Date());
// textView is the TextView view that should display it
textViewdate.setText(currentDateString);
/// For Show Time
String currentTimeString = DateFormat.getTimeInstance().format(new Date());
// textView is the TextView view that should display it
textViewtime.setText(currentTimeString);
Vérifier le code complet Android - Afficher la date et l'heure actuelles dans un exemple Android Studio avec le code source
Pour obtenir l' heure / la date actuelle, utilisez simplement l'extrait de code suivant:
Pour utiliser le temps :
SimpleDateFormat simpleDateFormatTime = new SimpleDateFormat("HH:mm", Locale.getDefault());
String strTime = simpleDateFormatTime.format(now.getTime());
Pour utiliser la date :
SimpleDateFormat simpleDateFormatDate = new SimpleDateFormat("E, MMM dd, yyyy", Locale.getDefault());
String strDate = simpleDateFormatDate.format(now.getTime());
et vous êtes prêt à partir.
SimpleDateFormat format = new SimpleDateFormat("dd/MM/yyyy");
Calendar c = Calendar.getInstance();
Date date = Calendar.getInstance().getTime();
String sDate = format.format(date);//31-12-9999
int mYear = c.get(Calendar.YEAR);//9999
int mMonth = c.get(Calendar.MONTH);
mMonth = mMonth + 1;//12
int hrs = c.get(Calendar.HOUR_OF_DAY);//24
int min = c.get(Calendar.MINUTE);//59
String AMPM;
if (c.get(Calendar.AM_PM) == 0) {
AMPM = "AM";
} else {
AMPM = "PM";
}
java.text.DateFormat
et NONandroid.text.format.DateFormat
! Et c'estjava.util.Date
et NONjava.sql.Date
! Juste un petit indice pour poser des questions: essayez d'être précis, par exemple: déclarez ce que vous entendez par «afficher» dans votre question. Et lorsque vous tapez mes lignes - Date et DateFormat doivent bien sûr être importés - s'il y a un choix de 2 pour chacune, le moins que vous puissiez essayer est n'importe quelle combinaison: c'est juste 4!