最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Android開發(fā)中日期工具類DateUtil完整實例

 更新時間:2017年11月11日 14:40:14   作者:LovooGod  
這篇文章主要介紹了Android開發(fā)中日期工具類DateUtil,結合完整實例形式分析了Android針對日期與時間的計算、轉(zhuǎn)換、格式化、獲取等相關操作技巧,需要的朋友可以參考下

本文實例講述了Android開發(fā)中日期工具類DateUtil。分享給大家供大家參考,具體如下:

/**
 * 日期操作工具類.
 * @Project  ERPForAndroid
 * @Package  com.ymerp.android.tools
 * @author   chenlin
 * @version  1.0
 */
@SuppressLint("SimpleDateFormat")
public class DateUtil {
  private static final String FORMAT = "yyyy-MM-dd HH:mm:ss";
  private static final SimpleDateFormat datetimeFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  private static final SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
  private static final SimpleDateFormat timeFormat = new SimpleDateFormat("HH:mm:ss");
  public static Date str2Date(String str) {
    return str2Date(str, null);
  }
  /**
   * 字符串轉(zhuǎn)時間
   * @param str
   * @param format
   * @return
   */
  public static Date str2Date(String str, String format) {
    if (str == null || str.length() == 0) {
      return null;
    }
    if (format == null || format.length() == 0) {
      format = FORMAT;
    }
    Date date = null;
    try {
      SimpleDateFormat sdf = new SimpleDateFormat(format);
      date = sdf.parse(str);
    } catch (Exception e) {
      e.printStackTrace();
    }
    return date;
  }
  public static Calendar str2Calendar(String str) {
    return str2Calendar(str, null);
  }
  public static Calendar str2Calendar(String str, String format) {
    Date date = str2Date(str, format);
    if (date == null) {
      return null;
    }
    Calendar c = Calendar.getInstance();
    c.setTime(date);
    return c;
  }
  public static String date2Str(Calendar c) {// yyyy-MM-dd HH:mm:ss
    return date2Str(c, null);
  }
  public static String date2Str(Calendar c, String format) {
    if (c == null) {
      return null;
    }
    return date2Str(c.getTime(), format);
  }
  public static String date2Str(Date d) {// yyyy-MM-dd HH:mm:ss
    return date2Str(d, null);
  }
  public static String date2Str(Date d, String format) {// yyyy-MM-dd HH:mm:ss
    if (d == null) {
      return null;
    }
    if (format == null || format.length() == 0) {
      format = FORMAT;
    }
    SimpleDateFormat sdf = new SimpleDateFormat(format);
    String s = sdf.format(d);
    return s;
  }
  public static String getCurDateStr() {
    Calendar c = Calendar.getInstance();
    c.setTime(new Date());
    return c.get(Calendar.YEAR) + "-" + (c.get(Calendar.MONTH) + 1) + "-" + c.get(Calendar.DAY_OF_MONTH) + "-"
        + c.get(Calendar.HOUR_OF_DAY) + ":" + c.get(Calendar.MINUTE) + ":" + c.get(Calendar.SECOND);
  }
  /**
   * 獲得當前日期的字符串格式
   *
   * @param format
   * @return
   */
  public static String getCurDateStr(String format) {
    Calendar c = Calendar.getInstance();
    return date2Str(c, format);
  }
  /**
   * 格式到秒
   *
   * @param time
   * @return
   */
  public static String getMillon(long time) {
    return new SimpleDateFormat("yyyy-MM-dd-HH-mm-ss").format(time);
  }
  /**
   * 格式到天
   *
   * @param time
   * @return
   */
  public static String getDay(long time) {
    return new SimpleDateFormat("yyyy-MM-dd").format(time);
  }
  /**
   * 格式到毫秒
   *
   * @param time
   * @return
   */
  public static String getSMillon(long time) {
    return new SimpleDateFormat("yyyy-MM-dd-HH-mm-ss-SSS").format(time);
  }
  /**
   * 字符串轉(zhuǎn)換到時間格式
   *
   * @param dateStr
   *      需要轉(zhuǎn)換的字符串
   * @param formatStr
   *      需要格式的目標字符串 舉例 yyyy-MM-dd
   * @return Date 返回轉(zhuǎn)換后的時間
   * @throws ParseException
   *       轉(zhuǎn)換異常
   */
  public static Date StringToDate(String dateStr, String formatStr) {
    DateFormat sdf = new SimpleDateFormat(formatStr);
    Date date = null;
    try {
      date = sdf.parse(dateStr);
    } catch (ParseException e) {
      e.printStackTrace();
    }
    return date;
  }
  /**
   * 轉(zhuǎn)化時間輸入時間與當前時間的間隔
   *
   * @param timestamp
   * @return
   */
  public static String converTime(long timestamp) {
    long currentSeconds = System.currentTimeMillis() / 1000;
    long timeGap = currentSeconds - timestamp;// 與現(xiàn)在時間相差秒數(shù)
    String timeStr = null;
    if (timeGap > 24 * 60 * 60) {// 1天以上
      timeStr = timeGap / (24 * 60 * 60) + "天前";
    } else if (timeGap > 60 * 60) {// 1小時-24小時
      timeStr = timeGap / (60 * 60) + "小時前";
    } else if (timeGap > 60) {// 1分鐘-59分鐘
      timeStr = timeGap / 60 + "分鐘前";
    } else {// 1秒鐘-59秒鐘
      timeStr = "剛剛";
    }
    return timeStr;
  }
  /**
   * 把字符串轉(zhuǎn)化為時間格式
   *
   * @param timestamp
   * @return
   */
  public static String getStandardTime(long timestamp) {
    SimpleDateFormat sdf = new SimpleDateFormat("MM月dd日 HH:mm");
    Date date = new Date(timestamp * 1000);
    sdf.format(date);
    return sdf.format(date);
  }
  /**
   * 獲得當前日期時間 日期時間格式y(tǒng)yyy-MM-dd HH:mm:ss
   *
   * @return
   */
  public static String currentDatetime() {
    return datetimeFormat.format(now());
  }
  /**
   * 格式化日期時間 日期時間格式y(tǒng)yyy-MM-dd HH:mm:ss
   *
   * @return
   */
  public static String formatDatetime(Date date) {
    return datetimeFormat.format(date);
  }
  /**
   * 獲得當前時間 時間格式HH:mm:ss
   *
   * @return
   */
  public static String currentTime() {
    return timeFormat.format(now());
  }
  /**
   * 格式化時間 時間格式HH:mm:ss
   *
   * @return
   */
  public static String formatTime(Date date) {
    return timeFormat.format(date);
  }
  /**
   * 獲得當前時間的<code>java.util.Date</code>對象
   *
   * @return
   */
  public static Date now() {
    return new Date();
  }
  public static Calendar calendar() {
    Calendar cal = GregorianCalendar.getInstance(Locale.CHINESE);
    cal.setFirstDayOfWeek(Calendar.MONDAY);
    return cal;
  }
  /**
   * 獲得當前時間的毫秒數(shù)
   *
   * 詳見{@link System#currentTimeMillis()}
   *
   * @return
   */
  public static long millis() {
    return System.currentTimeMillis();
  }
  /**
   *
   * 獲得當前Chinese月份
   *
   * @return
   */
  public static int month() {
    return calendar().get(Calendar.MONTH) + 1;
  }
  /**
   * 獲得月份中的第幾天
   *
   * @return
   */
  public static int dayOfMonth() {
    return calendar().get(Calendar.DAY_OF_MONTH);
  }
  /**
   * 今天是星期的第幾天
   *
   * @return
   */
  public static int dayOfWeek() {
    return calendar().get(Calendar.DAY_OF_WEEK);
  }
  /**
   * 今天是年中的第幾天
   *
   * @return
   */
  public static int dayOfYear() {
    return calendar().get(Calendar.DAY_OF_YEAR);
  }
  /**
   * 判斷原日期是否在目標日期之前
   *
   * @param src
   * @param dst
   * @return
   */
  public static boolean isBefore(Date src, Date dst) {
    return src.before(dst);
  }
  /**
   * 判斷原日期是否在目標日期之后
   *
   * @param src
   * @param dst
   * @return
   */
  public static boolean isAfter(Date src, Date dst) {
    return src.after(dst);
  }
  /**
   * 判斷兩日期是否相同
   *
   * @param date1
   * @param date2
   * @return
   */
  public static boolean isEqual(Date date1, Date date2) {
    return date1.compareTo(date2) == 0;
  }
  /**
   * 判斷某個日期是否在某個日期范圍
   *
   * @param beginDate
   *      日期范圍開始
   * @param endDate
   *      日期范圍結束
   * @param src
   *      需要判斷的日期
   * @return
   */
  public static boolean between(Date beginDate, Date endDate, Date src) {
    return beginDate.before(src) && endDate.after(src);
  }
  /**
   * 獲得當前月的最后一天
   *
   * HH:mm:ss為0,毫秒為999
   *
   * @return
   */
  public static Date lastDayOfMonth() {
    Calendar cal = calendar();
    cal.set(Calendar.DAY_OF_MONTH, 0); // M月置零
    cal.set(Calendar.HOUR_OF_DAY, 0);// H置零
    cal.set(Calendar.MINUTE, 0);// m置零
    cal.set(Calendar.SECOND, 0);// s置零
    cal.set(Calendar.MILLISECOND, 0);// S置零
    cal.set(Calendar.MONTH, cal.get(Calendar.MONTH) + 1);// 月份+1
    cal.set(Calendar.MILLISECOND, -1);// 毫秒-1
    return cal.getTime();
  }
  /**
   * 獲得當前月的第一天
   *
   * HH:mm:ss SS為零
   *
   * @return
   */
  public static Date firstDayOfMonth() {
    Calendar cal = calendar();
    cal.set(Calendar.DAY_OF_MONTH, 1); // M月置1
    cal.set(Calendar.HOUR_OF_DAY, 0);// H置零
    cal.set(Calendar.MINUTE, 0);// m置零
    cal.set(Calendar.SECOND, 0);// s置零
    cal.set(Calendar.MILLISECOND, 0);// S置零
    return cal.getTime();
  }
  private static Date weekDay(int week) {
    Calendar cal = calendar();
    cal.set(Calendar.DAY_OF_WEEK, week);
    return cal.getTime();
  }
  /**
   * 獲得周五日期
   *
   * 注:日歷工廠方法{@link #calendar()}設置類每個星期的第一天為Monday,US等每星期第一天為sunday
   *
   * @return
   */
  public static Date friday() {
    return weekDay(Calendar.FRIDAY);
  }
  /**
   * 獲得周六日期
   *
   * 注:日歷工廠方法{@link #calendar()}設置類每個星期的第一天為Monday,US等每星期第一天為sunday
   *
   * @return
   */
  public static Date saturday() {
    return weekDay(Calendar.SATURDAY);
  }
  /**
   * 獲得周日日期 注:日歷工廠方法{@link #calendar()}設置類每個星期的第一天為Monday,US等每星期第一天為sunday
   *
   * @return
   */
  public static Date sunday() {
    return weekDay(Calendar.SUNDAY);
  }
  /**
   * 將字符串日期時間轉(zhuǎn)換成java.util.Date類型 日期時間格式y(tǒng)yyy-MM-dd HH:mm:ss
   *
   * @param datetime
   * @return
   */
  public static Date parseDatetime(String datetime) throws ParseException {
    return datetimeFormat.parse(datetime);
  }
  /**
   * 將字符串日期轉(zhuǎn)換成java.util.Date類型 日期時間格式y(tǒng)yyy-MM-dd
   *
   * @param date
   * @return
   * @throws ParseException
   */
  public static Date parseDate(String date) throws ParseException {
    return dateFormat.parse(date);
  }
  /**
   * 將字符串日期轉(zhuǎn)換成java.util.Date類型 時間格式 HH:mm:ss
   *
   * @param time
   * @return
   * @throws ParseException
   */
  public static Date parseTime(String time) throws ParseException {
    return timeFormat.parse(time);
  }
  /**
   * 根據(jù)自定義pattern將字符串日期轉(zhuǎn)換成java.util.Date類型
   *
   * @param datetime
   * @param pattern
   * @return
   * @throws ParseException
   */
  public static Date parseDatetime(String datetime, String pattern) throws ParseException {
    SimpleDateFormat format = (SimpleDateFormat) datetimeFormat.clone();
    format.applyPattern(pattern);
    return format.parse(datetime);
  }
  /**
   * 把秒格式化為分種小時
   *
   * @param second
   * @return
   */
  public static String parseSecond(int second) {
    if (second >= 60) {
      return second / 60 + "分";
    } else if (second >= 60 * 60) {
      return second / 60 * 60 + "時";
    } else if (second >= 60 * 60 * 24) {
      return second / 60 * 60 + "天";
    } else {
      return second + "秒";
    }
  }
  /**
   * 比較時間大小
   * @param begin
   * @param end
   * @return
   */
  public static int compareDate(String begin, String end) {
    DateFormat df = new SimpleDateFormat("yyyy-MM-dd hh:mm");
    try {
      Date beginDate = df.parse(begin);
      Date endDate = df.parse(end);
      if (beginDate.getTime() < endDate.getTime()) {
        return 1;
      } else if (beginDate.getTime() > endDate.getTime()) {
        return -1;
      } else {
        return 0;
      }
    } catch (Exception exception) {
      exception.printStackTrace();
    }
    return 0;
  }
  /**
   * 獲得年份
   * @param date
   * @return
   */
  public int getYear(Date date){
    Calendar c = Calendar.getInstance();
    c.setTime(date);
    return c.get(Calendar.YEAR);
  }
  /**
   * 獲得月份
   * @param date
   * @return
   */
  public int getMonth(Date date){
    Calendar c = Calendar.getInstance();
    c.setTime(date);
    return c.get(Calendar.MONTH) + 1;
  }
  /**
   * 獲得星期幾
   * @param date
   * @return
   */
  public int getWeek(Date date){
    Calendar c = Calendar.getInstance();
    c.setTime(date);
    return c.get(Calendar.WEEK_OF_YEAR);
  }
  /**
   * 獲得日期
   * @param date
   * @return
   */
  public int getDay(Date date){
    Calendar c = Calendar.getInstance();
    c.setTime(date);
    return c.get(Calendar.DATE);
  }
  /**
   * 獲得天數(shù)差
   * @param begin
   * @param end
   * @return
   */
  public long getDayDiff(Date begin, Date end){
    long day = 1;
    if(end.getTime() < begin.getTime()){
      day = -1;
    }else if(end.getTime() == begin.getTime()){
      day = 1;
    }else {
      day += (end.getTime() - begin.getTime())/(24 * 60 * 60 * 1000) ;
    }
    return day;
  }
}

PS:這里再為大家推薦幾款關于日期與時間計算的在線工具供大家參考使用:

在線日期/天數(shù)計算器:
http://tools.jb51.net/jisuanqi/date_jisuanqi

在線萬年歷日歷:
http://tools.jb51.net/bianmin/wannianli

在線陰歷/陽歷轉(zhuǎn)換工具:
http://tools.jb51.net/bianmin/yinli2yangli

Unix時間戳(timestamp)轉(zhuǎn)換工具:
http://tools.jb51.net/code/unixtime

更多關于Android相關內(nèi)容感興趣的讀者可查看本站專題:《Android日期與時間操作技巧總結》、《Android開發(fā)入門與進階教程》、《Android基本組件用法總結》、《Android視圖View技巧總結》、《Android布局layout技巧總結》及《Android控件用法總結

希望本文所述對大家Android程序設計有所幫助。

相關文章

  • Android gradle配置抽取合并的操作步驟

    Android gradle配置抽取合并的操作步驟

    這篇文章主要介紹了Android gradle配置抽取合并的操作步驟,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-11-11
  • Android 定位系統(tǒng)(GPS)開發(fā)詳解

    Android 定位系統(tǒng)(GPS)開發(fā)詳解

    GPS定位是智能手機上一個比較有意思的功能,LBS等服務都有效的利用了GPS定位功能,本文就跟大家分享下Android開發(fā)中的GPS定位知識
    2016-07-07
  • Android 吸入動畫效果實現(xiàn)分解

    Android 吸入動畫效果實現(xiàn)分解

    如何在Android上面實現(xiàn)一個類似的效果。先看看我實現(xiàn)的效果圖,我們利用了Canvas.drawBitmapMesh()方法,具體實現(xiàn)代碼如下,感興趣的朋友可以參考下哈
    2013-06-06
  • Android onCreateOptionsMenu的使用方法總結

    Android onCreateOptionsMenu的使用方法總結

    這篇文章主要介紹了Android onCreateOptionsMenu的使用方法總結的相關資料,在Android下,每一個activity都捆綁了一個Menu,要想定義和使用菜單,都必須在Activity下進行操作,需要的朋友可以參考下
    2017-08-08
  • Kotlin Service服務組件開發(fā)詳解

    Kotlin Service服務組件開發(fā)詳解

    這幾天分析了一下的啟動過程,于是乎,今天寫一下Service使用; 給我的感覺是它并不復雜,千萬不要被一坨一坨的代碼嚇住了,雖然彎彎繞繞不少,重載函數(shù)一個接著一個,就向走迷宮一樣,但只要抓住主線閱讀,很快就能找到出口
    2022-12-12
  • Android音視頻開發(fā)只硬件解碼組件MediaCodec講解

    Android音視頻開發(fā)只硬件解碼組件MediaCodec講解

    在Android開發(fā)中提供了實現(xiàn)音視頻編解碼工具MediaCodec,針對對應音視頻解碼類型通過該類創(chuàng)建對應解碼器就能實現(xiàn)對數(shù)據(jù)進行解碼操作。本文通過示例詳細講解了MediaCodec的使用,需要的可以參考一下
    2023-01-01
  • Android動畫學習筆記之補間動畫

    Android動畫學習筆記之補間動畫

    這篇文章主要為大家詳細介紹了Android動畫學習筆記之補間動畫,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-12-12
  • Android實現(xiàn)圖片裁剪和上傳

    Android實現(xiàn)圖片裁剪和上傳

    這篇文章主要為大家詳細介紹了Android實現(xiàn)圖片的裁剪和上傳,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-08-08
  • android中webview控件和javascript交互實例

    android中webview控件和javascript交互實例

    這篇文章主要介紹了android中webview控件和javascript交互實例,例子中包括javascript調(diào)用java的方法,java代碼中調(diào)用javascript的方法,需要的朋友可以參考下
    2014-07-07
  • Android Moveview滑屏移動視圖類完整實例

    Android Moveview滑屏移動視圖類完整實例

    這篇文章主要介紹了Android Moveview滑屏移動視圖類,很有實用價值,需要的朋友可以參考下
    2014-07-07

最新評論

新干县| 巴南区| 古田县| 平湖市| 台东市| 拉萨市| 九龙县| 子长县| 福州市| 台北县| 盘山县| 迁安市| 北辰区| 怀柔区| 会东县| 光山县| 固镇县| 萍乡市| 黑山县| 丰台区| 屏山县| 德清县| 石屏县| 麦盖提县| 谢通门县| 贵德县| 手机| 鹤岗市| 湖州市| 韩城市| 永修县| 拜泉县| 泰安市| 巴彦淖尔市| 沙雅县| 新干县| 西吉县| 儋州市| 吉木乃县| 乐业县| 长阳|