22 ответов:
хорошо, не так сложно, как есть несколько способов сделать это. Я предполагаю, что вы хотите поместить текущую дату и время в
TextView.String currentDateTimeString = DateFormat.getDateTimeInstance().format(new Date()); // textView is the TextView view that should display it textView.setText(currentDateTimeString);есть больше, чтобы прочитать в документации, которые можно легко найти здесь . Там вы найдете дополнительную информацию о том, как изменить формат, используемый для преобразования.
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){ } } } }
очевидные варианты для отображения времени являются
AnalogClockView и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>выглядит так:
мое собственное рабочее решение:
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 d = new Date(); CharSequence s = DateFormat.format("yyyy-MM-dd hh:mm:ss", d.getTime());
С как получить полную дату с правильным форматом?:
пожалуйста, используйте
android.text.format.DateFormat.getDateFormat(Context context) android.text.format.DateFormat.getTimeFormat(Context context)чтобы получить допустимые форматы времени и даты в смысле текущих настроек пользователя (например, формат времени 12/24).
import android.text.format.DateFormat; private void some() { final Calendar t = Calendar.getInstance(); textView.setText(DateFormat.getTimeFormat(this/*Context*/).format(t.getTime())); }
вот код, который работал для меня. Пожалуйста, попробуйте это. Это простой метод, который занимает время и дату от системного вызова. Метод 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в своемStringзаполняется датой.
В моем случае:mDateButton.setText(formattedDate);
на самом деле, вам лучше всего с виджетом TextClock. Он обрабатывает все сложности для вас и будет уважать предпочтения пользователя 12/24hr. 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);Это даст формат даты и времени, как 2010-05-24T18:13:00
Это даст текущую дату и время:
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());
для отображения текущей даты:
Calendar c = Calendar.getInstance(); SimpleDateFormat df = new SimpleDateFormat("dd-MMM-yyyy"); String date = df.format(c.getTime()); Date.setText(date);вы должны хотеть, чтобы импортировать
импорт java.текст.Класса simpledateformat; импорт java.утиль.Календарь;
вы должны хотеть, чтобы использовать
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);
вы можете попробовать этот способ
Calendar calendar = Calendar.getInstance(); SimpleDateFormat mdformat = new SimpleDateFormat("HH:mm:ss"); String strDate = "Current Time : " + mdformat.format(calendar.getTime());
чтобы получить текущие Время/Дата просто используйте следующий фрагмент кода:
использовать времени:
SimpleDateFormat simpleDateFormatTime = new SimpleDateFormat("HH:mm", Locale.getDefault()); String strTime = simpleDateFormatTime.format(now.getTime());использовать дата:
SimpleDateFormat simpleDateFormatDate = new SimpleDateFormat("E, MMM dd, yyyy", Locale.getDefault()); String strDate = simpleDateFormatDate.format(now.getTime());и вы хорошо идти.
для отображения текущей даты и времени на 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);проверить полный код Android-отображение текущей даты и времени в примере Android Studio с исходным кодом
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"; }


Comments