날짜와 시간
에폭(Epoch) 타임 : 긴 정수로 표시되어 이 정보만으로는 날짜와 시간을 알아보기 어렵다.
public class ExerciseExam extends AppCompatActivity {
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_excercise_exam);
Refresh();
}
public void mOnClick(View v) {
switch (v.getId()) {
case R.id.btnrefresh:
Refresh();
break;
}
}
void Refresh() {
StringBuilder time = new StringBuilder();
// 에폭(Epoch) 타임 구현
// 현재 날짜와 시간을 구하는 방법
// 현재 시간값을 "정수"로 리턴함. 1970년 1월 1일 자정을 기준으로 1/1000초 단위를 가짐.
// 단 하나의 값으로 일차원화해서 전달, 저장, 비교가 용이하다. (출력은 부적합)
long epoch = System.currentTimeMillis();
time.append("epoch = " + epoch + "\n");
//time.append("now = " + DateUtils.formatDateTime(this, epoch, 0)+ "\n");
↑--------------------- 출력값 epoch = 1470296370052 ----------------------↑
// 공인된 태양력을 표현한다. 요소를 지정하면 시간대, 지역 설정 전달이 가능하다.
// 디폴트 생성자를 호출하면 시스템 설정을 참조하여 현재 시간으로 초기화된다.
Calendar cal = new GregorianCalendar();
time.append("now = " + String.format("%d년 %d월 %d일 %d시 %d분\n",
cal.get(Calendar.YEAR),
cal.get(Calendar.MONTH) + 1, cal.get(Calendar.DAY_OF_MONTH),
cal.get(Calendar.HOUR_OF_DAY), cal.get(Calendar.MINUTE)));
↑---------------- 출력값 now = 2016년 8월 4일 7시 39분 -------------------↑
Date now = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy.MM.dd hh:mm:ss"); //
time.append("now = " + sdf.format(now) + "\n");
↑------------------- 출력값 now = 2016.08.04 07:39:30 ---------------------↑
Calendar tom = new GregorianCalendar();
tom.add(Calendar.DAY_OF_MONTH, 1); // add 메서드가 내일 날짜를 구한다.
Date tomdate = tom.getTime();
SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy.MM.dd");
time.append("tomorrow = " + sdf2.format(tomdate) + "\n");
↑--------------------- 출력값 tomorrow = 2016.08.05 -----------------------↑
time.append("boot = " + UpTime(SystemClock.elapsedRealtime())); // 부팅후 경과 시간
time.append("run = " + UpTime(SystemClock.uptimeMillis())); // 부팅후 경과 시간 (슬립 제외)
time.append("thread = " + UpTime(SystemClock.currentThreadTimeMillis())); // 현재 스레드에서소비한 시간
TextView result = (TextView)findViewById(R.id.result);
result.setText(time.toString());
}
String UpTime(long msec) {
long sec = msec / 1000;
String result;
result = String.format("%d일 %d시 %d분 %d초\n", sec / 86400, sec / 3600 % 24,
sec / 60 % 60, sec % 60);
//result = DateUtils.formatElapsedTime(sec) + "\n";
return result;
}
}
'프로그래밍 > 안드로이드' 카테고리의 다른 글
[안드로이드] 스크롤뷰(ScrollView) (0) | 2016.08.07 |
---|---|
[안드로이드] 자동완성(Atuo Complete) (0) | 2016.08.07 |
[안드로이드] 프로그래스바(Progress Bar) (0) | 2016.08.04 |
[안드로이드] 어댑터 뷰(Adapter View) (0) | 2016.08.04 |
[안드로이드] 항목 뷰 (0) | 2016.08.02 |