読者です 読者をやめる 読者になる 読者になる

【Android】日付クラス

Android

 

Javaのお話です。

(わたしの場合、AlarmManagerといっしょに使うことが多いです)

 

--------------------------------------------------------------------------------------------------------------

TimeZone tz = TimeZone.getTimeZone("Asia/Tokyo");
Calendar cal = Calendar.getInstance();
cal.setTimeZone(tz);                     ※タイムゾーン設定
cal.setTimeInMillis(System.currentTimeMillis());          ※現在時刻を設定
cal.set(Calendar.YEAR, 2015);                                     ※2015年
cal.set(Calendar.MONTH, Calendar.SEPTEMBER);    ※9月
cal.set(Calendar.DAY_OF_MONTH, 1);                        ※1日
cal.set(Calendar.HOUR_OF_DAY, 7);                           ※7時
cal.set(Calendar.MINUTE, 10);                                     ※10分
cal.set(Calendar.SECOND, 20);                                   ※20秒
cal.add(Calendar.DAY_OF_MONTH, 1);                      ※1日プラス
cal.add(Calendar.SECOND, 20);                                  ※20秒プラス
long n = cal.getTimeInMillis();                                    ※設定した時刻を取得

 

▼「何日経過」かを計算

1日のミリ秒数(1000*60*60*24)で割る

 

▼2001年の元旦から今日までの期間
Calendar cal1 = Calendar.getInstance();
Calendar cal2 = Calendar.getInstance();
cal2.set(2001,0,1);
long n = cal1.getTimeInMillis() - cal2.getTimeInMillis();
Calendar cal3 = Calendar.getInstance();
cal3.setTimeInMillis(n);
int y = cal3.get(Calendar.YEAR) - 1970;
int m = cal3.get(Calendar.MONTH) + 1;
int d = cal3.get(Calendar.DATE);
String msg = y + "年" + m + "ヶ月と" + d + "日経過";

 

▼現在日時
DateFormat df = new SimpleDateFormat("yyyyMMddHHmmss");
Date date = new Date(System.currentTimeMillis());
return df.format(date);

 

▼アルファベット3文字⇒数値
String mon = "";
switch(month) {
  case "Jan": mon = "01"; break;
  case "Feb": mon = "02"; break;
  case "Mar": mon = "03"; break;
  case "Apr": mon = "04"; break;
  case "May": mon = "05"; break;
  case "Jun": mon = "06"; break;
  case "Jul": mon = "07"; break;
  case "Aug": mon = "08"; break;
  case "Sep": mon = "09"; break;
  case "Oct": mon = "10"; break;
  case "Nov": mon = "11"; break;
  case "Dec": mon = "12"; break;
}
return mon;