获取今天开始一年内的时间集合(年-月-日)

前天需求要自己做一个时间选择器 ,选择范围是今天到一年后今天;然后本以为android会有直接获取固定时间段内的集合方法,结果死活找不到,好吧,自己下了个方法。。。挺low的   不过实现功能了。

public void getYearDate(){
   long upDay =  dataOne("2018-04-01 00:00:00");
   long downDay =  dataOne("2018-04-02 00:00:00");

   long cut = downDay - upDay;
   Log.e("","");
}

public long dataOne(String time) {
   SimpleDateFormat sdr = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss",
         Locale.CHINA);
   Date date;
   long times = 0;
   try {
      date = sdr.parse(time);
      long l = date.getTime();

      times = l;
   } catch (Exception e) {
      e.printStackTrace();
   }
   return times;
}



/**
 * 初始化
 * @param context
 */
private void init(Context context){
   getYearDate();
   long dayMins = 86400000; //一整天的毫秒值
   int year = calendar.get(Calendar.YEAR);
   int month = calendar.get(Calendar.MONTH) + 1;
   int day = calendar.get(Calendar.DAY_OF_MONTH);
   dateList = new ArrayList<DateObject>();
   List strDateList = new ArrayList<String>();
   for (int i = 0; i < 365; i++) {
      Date d = new Date();
      long currentDay = d.getTime();
      long next = currentDay+(dayMins*i);
      SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd",
            Locale.getDefault());
      String y_m_d = format.format(next);
      strDateList.add(y_m_d);
   }

strDateList里面就是一年内的日期集合了。

 dataOne()这个方法就是把时间字符串转换成时间戳的。。。

还发现一个问题 使用Calendar的时候   如果不clear()下,会出现你意料不到的恶心情况。。。

Calendar ca = Calendar.getInstance();
ca.clear();
int maxDayOfMonth = ca.getActualMaximum(Calendar.DAY_OF_MONTH);

猜你喜欢

转载自blog.csdn.net/android410223sun/article/details/79879996