Display the current time and date in an Android application
如何在Android应用程序中显示当前日期和时间?
好吧,没有那么难,因为有几种方法可以做到这一点。我假设你想把当前日期&时间进入
1 2 3 4 | String currentDateTimeString = DateFormat.getDateTimeInstance().format(new Date()); // textView is the TextView view that should display it textView.setText(currentDateTimeString); |
在文档中可以阅读更多内容,可以在此处轻松找到
。在那里,您可以找到有关如何更改用于转换的格式的更多信息。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | 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); } } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 | 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){ } } } } |
显示时间的显而易见的选择是
例如,以下布局:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | <?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> |
看起来像这样:
如果您需要一行代码:
1 | String date = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(Calendar.getInstance().getTime()); |
结果是
我自己的工作方案:
1 2 3 4 5 6 7 | 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); |
希望这可以帮助!
如果您想以特定模式获取日期和时间,可以使用
1 2 | Date d = new Date(); CharSequence s = DateFormat.format("yyyy-MM-dd hh:mm:ss", d.getTime()); |
从如何获得正确格式的完整日期?:
请用
1 2 | android.text.format.DateFormat.getDateFormat(Context context) android.text.format.DateFormat.getTimeFormat(Context context) |
从当前用户设置的意义上获得有效的时间和日期格式(例如,12/24时间格式)。
1 2 3 4 5 6 | import android.text.format.DateFormat; private void some() { final Calendar t = Calendar.getInstance(); textView.setText(DateFormat.getTimeFormat(this/*Context*/).format(t.getTime())); } |
这是适合我的代码。请试试这个。这是一种从系统调用中获取时间和日期的简单方法。您需要的方法Datetime()。
1 2 3 4 5 6 7 8 | 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; } |
使用:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | 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); |
1 | String formattedDate = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(Calendar.getInstance().getTime()); |
使用
就我而言:
1 2 3 4 | 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); |
这将给出日期时间格式
2010-05-24T18:13:00
实际上,你最好使用TextClock小部件。它为您处理所有复杂性,并将尊重用户的12 / 24hr偏好。
http://developer.android.com/reference/android/widget/TextClock.html
要显示当前日期功能:
1 2 3 4 5 | Calendar c = Calendar.getInstance(); SimpleDateFormat df = new SimpleDateFormat("dd-MMM-yyyy"); String date = df.format(c.getTime()); Date.setText(date); |
您必须要导入
import java.text.SimpleDateFormat;
import java.util.Calendar;
你必须要使用
1 2 | TextView Date; Date = (TextView) findViewById(R.id.Date); |
只需复制此代码,希望这对您有用。
1 2 3 | Calendar c = Calendar.getInstance(); SimpleDateFormat sdf = new SimpleDateFormat("dd:MMMM:yyyy HH:mm:ss a"); String strDate = sdf.format(c.getTime()); |
这将给出当前的日期和时间:
1 2 3 4 5 6 7 | public String getCurrDate() { String dt; Date cal = Calendar.getInstance().getTime(); dt = cal.toLocaleString(); return dt; } |
1 2 | String currentDateandTime = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()); Toast.makeText(getApplicationContext(), currentDateandTime, Toast.LENGTH_SHORT).show(); |
请尝试以下代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | 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); |
你可以试试这种方式
1 2 3 | Calendar calendar = Calendar.getInstance(); SimpleDateFormat mdformat = new SimpleDateFormat("HH:mm:ss"); String strDate ="Current Time :" + mdformat.format(calendar.getTime()); |
用于在Textview上显示当前日期和时间
1 2 3 4 5 6 7 8 | /// 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); |
检查完整代码Android - 使用源代码在Android Studio示例中显示当前日期和时间
要获取当前时间/日期,请使用以下代码段:
要使用时间:
1 2 | SimpleDateFormat simpleDateFormatTime = new SimpleDateFormat("HH:mm", Locale.getDefault()); String strTime = simpleDateFormatTime.format(now.getTime()); |
使用日期:
1 2 | SimpleDateFormat simpleDateFormatDate = new SimpleDateFormat("E, MMM dd, yyyy", Locale.getDefault()); String strDate = simpleDateFormatDate.format(now.getTime()); |
你很高兴。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | 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"; } |