在Android应用程序中显示当前时间和date
如何在Android应用程序中显示当前的date和时间?
好吧,没有那么难,因为有几种方法可以做到这一点。 我假设你想把当前的date和时间放到一个TextView
。
String currentDateTimeString = DateFormat.getDateTimeInstance().format(new Date()); // textView is the TextView view that should display it textView.setText(currentDateTimeString);
还有更多可以在这里find的文档中阅读。 在那里您可以find更多关于如何更改转换格式的信息。
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); } }
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){ } } } }
显示时间的明显select是AnalogClock
视图和DigitalClock
视图 。
例如,以下布局:
<?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>
看起来像这样:
我自己的工作解决scheme
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);
希望这可以帮助!
如果你想要一行代码:
String date = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(Calendar.getInstance().getTime());
结果是"2016-09-25 16:50:34"
如果你想以特定的模式获取date和时间,你可以使用
Date d = new Date(); CharSequence s = DateFormat.format("yyyy-MM-dd hh:mm:ss", d.getTime());
从如何获得正确格式的完整date? :
请用
android.text.format.DateFormat.getDateFormat(Context context) android.text.format.DateFormat.getTimeFormat(Context context)
以当前用户设置(例如12/24时间格式)的forms获取有效的时间和date格式。
import android.text.format.DateFormat; private void some() { final Calendar t = Calendar.getInstance(); textView.setText(DateFormat.getTimeFormat(this/*Context*/).format(t.getTime())); }
这是为我工作的代码。 请试试这个。 这是一个简单的方法,从系统调用需要时间和date。 方法Datetime()无论你需要什么。
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; }
使用:
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);
String formattedDate = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(Calendar.getInstance().getTime());
使用formattedDate
作为填充date的String
。
在我的情况: mDateButton.setText(formattedDate);
实际上,您最好使用TextClock小部件。 它处理所有的复杂性,并会尊重用户的12/24小时偏好。 http://developer.android.com/reference/android/widget/TextClock.html
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);
这会给date时间格式,如2010-05-24T18:13:00
这将给出当前date和时间:
public String getCurrDate() { String dt; Date cal = Calendar.getInstance().getTime(); dt = cal.toLocaleString(); return dt; }
只需复制此代码,并希望这对你工作正常。
Calendar c = Calendar.getInstance(); SimpleDateFormat sdf = new SimpleDateFormat("dd:MMMM:yyyy HH:mm:ss a"); String strDate = sdf.format(c.getTime());
要显示math函数:
Calendar c = Calendar.getInstance(); SimpleDateFormat S = new SimpleDateFormat("dd-MMM-yyyy"); String date = df.format(c.getTime()); Date.setText(date);
您必须要导入
import java.text.SimpleDateFormat; import java.util.Calendar;
你一定要用
TextView Date; Date = (TextView) findViewById(R.id.Date);
String currentDateandTime = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()); Toast.makeText(getApplicationContext(), currentDateandTime, Toast.LENGTH_SHORT).show();
试试下面的代码:
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);
要获取当前时间/date,只需使用以下代码片段:
要使用时间 :
SimpleDateFormat simpleDateFormatTime = new SimpleDateFormat("HH:mm", Locale.getDefault()); String strTime = simpleDateFormatTime.format(now.getTime());
使用date :
SimpleDateFormat simpleDateFormatDate = new SimpleDateFormat("E, MMM dd, yyyy", Locale.getDefault()); String strDate = simpleDateFormatDate.format(now.getTime());
你很好走。
//Code to display date and time in textviews etDate = (TextView) findViewById(R.id.editDate); etTime = (TextView) findViewById(R.id.editTime); SimpleDateFormat sdfd = new SimpleDateFormat( "dd-mm-yyyy " ); etDate.setText( sdfd.format( new Date() )); SimpleDateFormat sdft = new SimpleDateFormat( "hh : mm : ss aa");//aa gives you AM/PM ie, in 12 hour format etTime.setText(sdft.format( new Date() ));