1. 程式人生 > >spark實現獲取上個月1號及最後一天

spark實現獲取上個月1號及最後一天

最近在分析的時候要分析周及月的資料

那麼月的話 一開始我是直接獲取當月的1號及最後一天

但是後來發現數據不太對

因為這個樣子跑的話 會存在最後一天資料丟失(和本身的資料有關)

所以這裡就要寫 獲取上個月的1號及最後一天

有不對的請指正:

import java.text.SimpleDateFormat
import java.util.Calendar

  //獲取前月的第一天
  def getNowMonthStart(): String = {
    var period: String = ""
    var cal: Calendar = Calendar.getInstance();
    var df: SimpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
    cal.add(Calendar.MONTH, -1);
    cal.set(Calendar.DATE,1);//設定為1號,當前日期既為本月第一天
    period = df.format(cal.getTime())
    period

  }


  //獲取前月的最後一天
  def getNowMonthEnd(): String = {
    var period: String = ""
    var cal: Calendar = Calendar.getInstance();
    var df: SimpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
    cal.set(Calendar.DATE, 0)
    period = df.format(cal.getTime())
    period
  }