Làm cách nào để hiển thị ngày giờ hiện tại trong ứng dụng Android?
Làm cách nào để hiển thị ngày giờ hiện tại trong ứng dụng Android?
Câu trả lời:
Được rồi, không khó như có một số phương pháp để làm điều này. Tôi giả sử bạn muốn đặt ngày & giờ hiện tại vào a TextView
.
String currentDateTimeString = java.text.DateFormat.getDateTimeInstance().format(new Date());
// textView is the TextView view that should display it
textView.setText(currentDateTimeString);
Có nhiều thứ để đọc trong tài liệu có thể dễ dàng tìm thấy ở đây . Ở đó bạn sẽ tìm thấy thêm thông tin về cách thay đổi định dạng được sử dụng để chuyển đổi.
"HH:mm:ss"
! Hoàn toàn:currentTimeString = new SimpleDateFormat("HH:mm:ss").format(new Date());
DateFormat.getTimeInstance()
và 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
vì tôi không thể tìm thấy lớp biểu tượng
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){
}
}
}
}
Các lựa chọn rõ ràng để hiển thị thời gian là AnalogClock
Chế độ xem và DigitalClock
Chế độ xem .
Ví dụ: bố cục sau:
<?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>
Trông như thế này:
Trong trường hợp bạn muốn một dòng mã:
String date = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(Calendar.getInstance().getTime());
Kết quả là "2016-09-25 16:50:34"
Giải pháp làm việc của riêng tôi:
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);
Hi vọng điêu nay co ich!
Từ Làm thế nào để có được ngày đầy đủ với định dạng chính xác?:
Vui lòng sử dụng
android.text.format.DateFormat.getDateFormat(Context context)
android.text.format.DateFormat.getTimeFormat(Context context)
để có được các định dạng thời gian và ngày hợp lệ theo nghĩa của cài đặt người dùng hiện tại (ví dụ định dạng 12/24).
import android.text.format.DateFormat;
private void some() {
final Calendar t = Calendar.getInstance();
textView.setText(DateFormat.getTimeFormat(this/*Context*/).format(t.getTime()));
}
Đây là mã làm việc cho tôi. Hãy thử điều này. Đây là một phương pháp đơn giản cần thời gian và ngày từ một cuộc gọi hệ thống. Phương thức Datetime () bất cứ nơi nào bạn cần.
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;
}
Sử dụng:
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);
Điều này sẽ đưa ra định dạng thời gian ngày như 2010-05-24T18: 13: 00
Trên thực tế, bạn tốt nhất với tiện ích TextClock. Nó xử lý tất cả sự phức tạp cho bạn và sẽ tôn trọng sở thích 12/24 của người dùng. http://developer.android.com/reference/android/widget/TextClock.html
Để hiển thị chức năng ngày hiện tại:
Calendar c = Calendar.getInstance();
SimpleDateFormat df = new SimpleDateFormat("dd-MMM-yyyy");
String date = df.format(c.getTime());
Date.setText(date);
Bạn phải muốn nhập
nhập java.text.SimpleDateFormat; nhập java.util.CalWiki;
Bạn phải muốn sử dụng
TextView Date;
Date = (TextView) findViewById(R.id.Date);
Đơn giản chỉ cần sao chép mã này và hy vọng nó hoạt động tốt cho bạn.
Calendar c = Calendar.getInstance();
SimpleDateFormat sdf = new SimpleDateFormat("dd:MMMM:yyyy HH:mm:ss a");
String strDate = sdf.format(c.getTime());
Hãy thử mã dưới đây:
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);
Bạn có thể thử cách này
Calendar calendar = Calendar.getInstance();
SimpleDateFormat mdformat = new SimpleDateFormat("HH:mm:ss");
String strDate = "Current Time : " + mdformat.format(calendar.getTime());
Nếu bạn muốn làm việc với ngày / giờ trong Android, tôi khuyên bạn nên sử dụng ThreeTenABP , đây là phiên bản của java.time.*
gói (có sẵn bắt đầu từ API 26 trên Android) được cung cấp với Java 8 có sẵn để thay thế java.util.Date
và java.util.Calendar
.
LocalDate localDate = LocalDate.now();
DateTimeFormatter formatter = DateTimeFormatter.ofLocalizedDate(FormatStyle.MEDIUM);
String date = localDate.format(formatter);
textView.setText(date);
ZonedDateTime
thay vì LocalDate
và DateTimeFormatter.ofLocalizedDateTime
thay vì ofLocalizedDate
. Nếu không thì mã sẽ giống nhau.
Để hiển thị ngày và giờ hiện tại trên 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);
Kiểm tra toàn bộ Mã Android - Hiển thị ngày và giờ hiện tại trong Ví dụ về Android Studio với mã nguồn
Để có được Thời gian / Ngày hiện tại, chỉ cần sử dụng đoạn mã sau:
Để sử dụng Thời gian :
SimpleDateFormat simpleDateFormatTime = new SimpleDateFormat("HH:mm", Locale.getDefault());
String strTime = simpleDateFormatTime.format(now.getTime());
Để sử dụng Ngày :
SimpleDateFormat simpleDateFormatDate = new SimpleDateFormat("E, MMM dd, yyyy", Locale.getDefault());
String strDate = simpleDateFormatDate.format(now.getTime());
và bạn tốt để đi.
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
và KHÔNGandroid.text.format.DateFormat
! Và nójava.util.Date
và KHÔNGjava.sql.Date
! Chỉ cần một gợi ý nhỏ khi đặt câu hỏi: cố gắng chính xác, ví dụ: khai báo ý của bạn bằng cách "hiển thị" trong câu hỏi của bạn. Và khi bạn nhập các dòng của tôi - tất nhiên cả Date và DateFormat đều phải được nhập - nếu có lựa chọn 2 cho mỗi dòng, thì ít nhất bạn có thể thử là bất kỳ kết hợp nào: đó chỉ là 4!