抓系統時間的寫法:
- Calendar now = Calendar.getInstance();
設定顯示的格式
- DateFormat timeFormat = new SimpleDateFormat("H:mm a");
- String time = timeFormat .format(now.getTime());
- DateFormat dateFormat = new SimpleDateFormat("EEE, MMM d, yyyy");
- String date = dateFormat.format(now.getTime());
如果要更改時間 (ex.加30分鐘)
- now.add(Calendar.MINUTE, 31);
- String time = timeFormat .format(now.getTime());
再利用計時器每秒更新時間:
- private Runnable timeTask = new Runnable() {
- @Override
- public void run() {
- now = Calendar.getInstance();
- timeStr = timeFormat.format(now.getTime());
- dateStr = dateFormat.format(now.getTime());
- tv_currentTime.setText(timeStr);
- tv_currentDate.setText(dateStr);
- timeHandler.postDelayed(timeTask, 1000);
- }
- };
完整程式碼 MainActivity.java:
END
- public class MainActivity extends AppCompatActivity {
- private String timeStr, dateStr;
- private TextView tv_currentTime, tv_currentDate;
- private Calendar now;
- private DateFormat timeFormat, dateFormat;
- private Handler timeHandler;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- tv_currentTime = findViewById(R.id.id_tv_CurrentTime);
- tv_currentDate = findViewById(R.id.id_tv_CurrentDate);
- now = Calendar.getInstance();
- timeFormat = new SimpleDateFormat("h:mm a");
- dateFormat = new SimpleDateFormat("EEE, MMM d, yyyy");
- timeStr = timeFormat.format(now.getTime());
- dateStr = dateFormat.format(now.getTime());
- tv_currentTime.setText(timeStr);
- tv_currentDate.setText(dateStr);
- timeHandler = new Handler();
- timeHandler.postDelayed(timeTask, 1000);
- }
- protected void onDestroy() {
- super.onDestroy();
- timeHandler.removeCallbacks(timeTask);
- }
- private Runnable timeTask = new Runnable() {
- @Override
- public void run() {
- now = Calendar.getInstance();
- timeStr = timeFormat.format(now.getTime());
- dateStr = dateFormat.format(now.getTime());
- tv_currentTime.setText(timeStr);
- tv_currentDate.setText(dateStr);
- timeHandler.postDelayed(timeTask, 500);
- }
- };
- }
沒有留言:
張貼留言