728x90
안녕하세요, 오늘은 안드로이드에서 Java 언어를 사용해 TimeZone 별 현재 시간을 가져오는 방법에 대해 알아보겠습니다
먼저 사용할 레이아웃 뷰와 TimeZone ID 배열 등을 초기화 해줍니다
// 아이템 클릭 시 현재 시간을 표시할 텍스트뷰
TextView current_time = findViewById(R.id.textView);
// 타임존 시간을 원하는 형식으로 변경해줄 DateFormat 객체 변수 생성
DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm");
// 스피너 목록에 넣을 타임존 ID 배열
String[] items_timeZone = {"Asia/Seoul", "America/Los_Angeles", "Europe/London", "Africa/Algiers", "Indian/Comoro", "Asia/Hong_Kong"};
// 스피너 객체 변수 만들어서 레이아웃에 스피너 뷰 참조
Spinner spinner_timeZone = (Spinner) findViewById(R.id.spinner);
그 다음 TimeZone ID 목록을 확인할 수 있는 Spinner 목록을 설정합니다
// 아이템 목록을 관리하는 어댑터 객체 생성
ArrayAdapter<String> adapter_spinner = new ArrayAdapter<String>(
// 매개변수 : Context, int(안드로이드에서 제공하는 기본 레이아웃 리소스 사용), 배열(스피너 목록에서 사용할 아이템 배열)
this, android.R.layout.simple_spinner_item, items_timeZone
);
// 안드로이드에서 제공하는 기본 레이아웃 리소스 사용
adapter_spinner.setDropDownViewResource(android.R.layout.simple_spinner_item);
// 스피너 객체에 만든 어댑터 설정
spinner_timeZone.setAdapter(adapter_spinner);
이제 스피너 목록에서 아이템을 선택했을 때 호출되는 메소드를 이용해 현재 선택한 TimeZone의 시간을 표시하게 만듭니다.
spinner_timeZone.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener(){
// 스피너 목록에서 아이템을 선택했을 경우 호출되는 메소드 설정
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
// 타임존을 저장할 타임존 객체 변수 선언 (java.util.TimeZone)
TimeZone tz;
// 타임존 객체에 선택된 타임존 설정
tz = TimeZone.getTimeZone(items_timeZone[position]);
// DateFormat 객체에 타임존 객체 설정
dateFormat.setTimeZone(tz);
// 현재 시간을 받아올 Date 객체 생성
Date date = new Date();
// 받아온 현재 시간을 DateFormat 객체에 설정된 타임존 시간으로 변경 후
// 텍스트 뷰에 표시
current_time.setText(dateFormat.format(date));
}
// 아무것도 선택하지 않았을 때 호출되는 메소드 설정
@Override
public void onNothingSelected(AdapterView<?> parent) {
current_time.setText("아이템 없음");
}
});
결과 영상입니다
'안드로이드 자바' 카테고리의 다른 글
[Android][Java] 부팅/재부팅 시 실행되는 서비스 만들기 (0) | 2023.04.11 |
---|---|
[Android][Java] 네이버 맵 API 사용하기 (5) | 2023.04.10 |
[Android][JAVA]PiP 지원 적용하기 (0) | 2023.03.30 |
[Android][Java] 날짜순으로 정렬하기 (0) | 2023.03.29 |
[Android][Java] Material DatePicker 달력(캘린더) 사용하기 (0) | 2023.03.28 |