在Android開發中,獲取當前時間這樣的操作是非常常見的。本文將從多個方面探討如何在Android中獲取當前時間。
一、系統時間的獲取
獲取系統時間是我們最常用的操作之一,我們可以使用Android的系統API來獲取當前的系統時間。
Date currentDate = new Date(System.currentTimeMillis());
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String currentTime = dateFormat.format(currentDate);
其中,currentTime表示當前時間,格式為「年-月-日 時:分:秒」
我們也可以使用Calendar類來獲取系統時間,代碼如下:
Calendar calendar = Calendar.getInstance(); int year = calendar.get(Calendar.YEAR); int month = calendar.get(Calendar.MONTH) + 1; int day = calendar.get(Calendar.DATE); int hour = calendar.get(Calendar.HOUR_OF_DAY); int minute = calendar.get(Calendar.MINUTE); int second = calendar.get(Calendar.SECOND);
以上代碼將分別獲取當前的年、月、日、時、分、秒。
二、獲取時區信息
在Android中,我們可以使用TimeZone類來獲取時區信息。
TimeZone timeZone = TimeZone.getDefault(); String timeZoneName = timeZone.getDisplayName();
其中,timeZoneName表示當前時區名稱,例如「中國標準時間」等。
三、使用Timer定時器獲取當前時間
在Android中,我們可以使用Timer類和TimerTask類實現定時任務。下面是一個使用Timer定時器獲取當前時間的例子:
TimerTask task = new TimerTask() {
@Override
public void run() {
Date currentDate = new Date(System.currentTimeMillis());
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String currentTime = dateFormat.format(currentDate);
Log.d("當前時間:", currentTime);
}
};
Timer timer = new Timer();
timer.schedule(task, 0, 1000);
以上代碼將每秒鐘獲取當前的時間,並將其打印出來。
四、使用SystemClock獲取系統啟動時間
在Android中,我們可以使用SystemClock類來獲取系統啟動時間。
long uptime = SystemClock.elapsedRealtime();
uptime表示當前系統的運行時間,以毫秒為單位。
五、使用NTP協議獲取網絡時間
使用NTP協議可以獲取網絡時間,這種方式比較準確。
public static void getNetWorkTime() {
new Thread(() -> {
try {
String url = "http://www.baidu.com";// 使用百度作為時間校準對象
URLConnection conn = new URL(url).openConnection();
conn.connect();
long dateL = conn.getDate();
Date date = new Date(dateL);
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String currentTime = dateFormat.format(date);
Log.d("網絡時間", currentTime);
} catch (IOException e) {
e.printStackTrace();
}
}).start();
}
六、使用Android手機時鐘信息獲取當前時間
在Android中,我們可以通過使用時鐘信息獲取當前時間。我們可以將其封裝成一個輔助類,代碼如下:
public class Clock {
private static final String[] DAYS_OF_WEEK = new String[]{
"日", "一", "二", "三", "四", "五", "六"
};
private Context mContext;
private Calendar mCalendar;
public Clock(Context context) {
mContext = context.getApplicationContext();
mCalendar = Calendar.getInstance();
}
public String getTime() {
StringBuilder stringBuilder = new StringBuilder();
mCalendar.setTimeInMillis(System.currentTimeMillis());
stringBuilder.append(mCalendar.get(Calendar.HOUR_OF_DAY)).append(":").append(mCalendar.get(Calendar.MINUTE));
return stringBuilder.toString();
}
public String getDate() {
StringBuilder stringBuilder = new StringBuilder();
mCalendar.setTimeInMillis(System.currentTimeMillis());
stringBuilder.append(mCalendar.get(Calendar.YEAR)).append("年").append(mCalendar.get(Calendar.MONTH) + 1).append("月").append(mCalendar.get(Calendar.DAY_OF_MONTH)).append("日")
.append("星期").append(DAYS_OF_WEEK[mCalendar.get(Calendar.DAY_OF_WEEK) - 1]);
return stringBuilder.toString();
}
}
以上代碼將獲取手機時鐘信息,並將其封裝成了一個Clock工具類,我們可以直接調用其方法獲取當前時間和日期。
七、使用第三方庫獲取當前時間
在Android中,有很多第三方庫可以使用,例如Joda-Time、Time4A、ThreeTenABP等,可以使用這些庫來獲取當前時間。
以Joda-Time為例,獲取當前時間的代碼如下:
DateTime datetime = new DateTime();
String currentTime = datetime.toString("yyyy-MM-dd HH:mm:ss");
以上代碼將獲取當前時間,並將其格式化成「年-月-日 時:分:秒」的格式。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/154519.html
微信掃一掃
支付寶掃一掃