zoukankan      html  css  js  c++  java
  • Android 开发笔记___DateUtil——Time

      1 package com.example.alimjan.hello_world;
      2 
      3 /**
      4  * Created by alimjan on 6/30/2017.
      5  */
      6 
      7         import java.text.ParseException;
      8         import java.text.SimpleDateFormat;
      9         import java.util.Calendar;
     10         import java.util.Date;
     11 
     12 
     13 public class DateUtil {
     14 
     15     private static final String FORMAT = "yyyy-MM-dd HH:mm:ss";
     16 
     17     public static Date str2Date(String str) {
     18         return str2Date(str, null);
     19     }
     20 
     21     public static Date str2Date(String str, String format) {
     22         if (str == null || str.length() == 0) {
     23             return null;
     24         }
     25         if (format == null || format.length() == 0) {
     26             format = FORMAT;
     27         }
     28         Date date = null;
     29         try {
     30             SimpleDateFormat sdf = new SimpleDateFormat(format);
     31             date = sdf.parse(str);
     32 
     33         } catch (Exception e) {
     34             e.printStackTrace();
     35         }
     36         return date;
     37 
     38     }
     39 
     40     public static Calendar str2Calendar(String str) {
     41         return str2Calendar(str, null);
     42 
     43     }
     44 
     45     public static Calendar str2Calendar(String str, String format) {
     46 
     47         Date date = str2Date(str, format);
     48         if (date == null) {
     49             return null;
     50         }
     51         Calendar c = Calendar.getInstance();
     52         c.setTime(date);
     53 
     54         return c;
     55 
     56     }
     57 
     58     public static String date2Str(Calendar c) {// yyyy-MM-dd HH:mm:ss
     59         return date2Str(c, null);
     60     }
     61 
     62     public static String date2Str(Calendar c, String format) {
     63         if (c == null) {
     64             return null;
     65         }
     66         return date2Str(c.getTime(), format);
     67     }
     68 
     69     public static String date2Str(Date d) {// yyyy-MM-dd HH:mm:ss
     70         return date2Str(d, null);
     71     }
     72 
     73     public static String date2Str(Date d, String format) {// yyyy-MM-dd HH:mm:ss
     74         if (d == null) {
     75             return null;
     76         }
     77         if (format == null || format.length() == 0) {
     78             format = FORMAT;
     79         }
     80         SimpleDateFormat sdf = new SimpleDateFormat(format);
     81         String s = sdf.format(d);
     82         return s;
     83     }
     84 
     85     public static String getCurDateStr() {
     86         Calendar c = Calendar.getInstance();
     87         c.setTime(new Date());
     88         return c.get(Calendar.YEAR) + "-" + (c.get(Calendar.MONTH) + 1) + "-"
     89                 + c.get(Calendar.DAY_OF_MONTH) + "-"
     90                 + c.get(Calendar.HOUR_OF_DAY) + ":" + c.get(Calendar.MINUTE)
     91                 + ":" + c.get(Calendar.SECOND);
     92     }
     93 
     94     /**
     95      * 获得当前日期的字符串格式
     96      *
     97      * @param format
     98      * @return
     99      */
    100     public static String getCurDateStr(String format) {
    101         Calendar c = Calendar.getInstance();
    102         return date2Str(c, format);
    103     }
    104 
    105     // 格式到秒
    106     public static String getMillon(long time) {
    107 
    108         return new SimpleDateFormat("yyyy-MM-dd-HH-mm-ss").format(time);
    109 
    110     }
    111 
    112     // 格式到天
    113     public static String getDay(long time) {
    114 
    115         return new SimpleDateFormat("yyyy-MM-dd").format(time);
    116 
    117     }
    118 
    119     // 格式到毫秒
    120     public static String getSMillon(long time) {
    121 
    122         return new SimpleDateFormat("yyyy-MM-dd-HH-mm-ss-SSS").format(time);
    123 
    124     }
    125 
    126 
    127     /*
    128      输入的是String,格式诸如20120102,实现加一天的功能,返回的格式为String,诸如20120103
    129      */
    130     public static String stringDatePlus(String row) throws ParseException{
    131         String year=row.substring(0, 4);
    132         String month=row.substring(4,6);
    133         String day=row.substring(6);
    134         String date1=year+"-"+month+"-"+day;
    135         SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
    136         Date startDate=sdf.parse(date1);
    137         Calendar cd = Calendar.getInstance();
    138         cd.setTime(startDate);
    139         cd.add(Calendar.DATE, 1);
    140         String dateStr =sdf.format(cd.getTime());
    141         String year1=dateStr.substring(0,4);
    142         String month1=dateStr.substring(5,7);
    143         String day1=dateStr.substring(8);
    144         return year1+month1+day1;
    145     }
    146 
    147     /*
    148      输入的是String,格式诸如20120102,实现减一天的功能,返回的格式为String,诸如20120101
    149      */
    150     public static String stringDateDecrease(String row) throws ParseException{
    151         String year=row.substring(0, 4);
    152         String month=row.substring(4,6);
    153         String day=row.substring(6);
    154         String date1=year+"-"+month+"-"+day;
    155         SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
    156         Date startDate=sdf.parse(date1);
    157         Calendar cd = Calendar.getInstance();
    158         cd.setTime(startDate);
    159         cd.add(Calendar.DATE, -1);
    160         String dateStr =sdf.format(cd.getTime());
    161         String year1=dateStr.substring(0,4);
    162         String month1=dateStr.substring(5,7);
    163         String day1=dateStr.substring(8);
    164         return year1+month1+day1;
    165     }
    166 
    167     /*
    168      输入的格式为String,诸如20120101,返回的格式为String,诸如2012-01-01
    169      */
    170     public static String stringDateChange(String date)
    171     {
    172         if(date.length()=="20120101".length()){
    173             String year=date.substring(0, 4);
    174             String month=date.substring(4,6);
    175             String day=date.substring(6);
    176             return year+"-"+month+"-"+day;
    177         }else{
    178             return date;
    179         }
    180 
    181 
    182     }
    183     /**
    184      * 日期向后推一天
    185      * @param date 格式:20120101
    186      * @return  20120102
    187      */
    188     public static String tonextday(String date){
    189         int year = Integer.parseInt(date.substring(0,4));
    190         int month = Integer.parseInt(date.substring(4,6));
    191         int day = Integer.parseInt(date.substring(6));
    192         Calendar calendar = Calendar.getInstance();
    193         calendar.set(year, month-1, day+1);
    194         Date newdate = calendar.getTime();
    195         SimpleDateFormat format = new SimpleDateFormat("yyyyMMdd");
    196         String da = format.format(newdate);
    197         return da;
    198     }
    199 
    200     /**
    201      * 获取当前日期上一周的开始日期 (周日)
    202      */
    203     public static String previousWeekByDate(String date) {
    204         int year = Integer.parseInt(date.substring(0,4));
    205         int month = Integer.parseInt(date.substring(4,6));
    206         int day = Integer.parseInt(date.substring(6));
    207         Calendar calendar = Calendar.getInstance();
    208         calendar.set(year, month-1, day);
    209         Date newdate = calendar.getTime();
    210         SimpleDateFormat sdf=new SimpleDateFormat("yyyyMMdd");
    211         Calendar cal = Calendar.getInstance();
    212         cal.setTime(newdate);
    213         int dayWeek = cal.get(Calendar.DAY_OF_WEEK);//获得当前日期是一个星期的第几天
    214         if(1 == dayWeek) {
    215             cal.add(Calendar.DAY_OF_MONTH, -1);
    216         }
    217         cal.setFirstDayOfWeek(Calendar.SUNDAY);//设置一个星期的第一天,按中国的习惯一个星期的第一天是星期一
    218         int s = cal.get(Calendar.DAY_OF_WEEK);//获得当前日期是一个星期的第几天
    219         cal.add(Calendar.DATE, cal.getFirstDayOfWeek()-s);//根据日历的规则,给当前日期减往星期几与一个星期第一天的差值
    220         cal.add(Calendar.WEEK_OF_YEAR, -1);
    221         String imptimeBegin = sdf.format(cal.getTime());
    222 //      System.out.println("所在周星期日的日期:"+imptimeBegin);
    223         return imptimeBegin;
    224     }
    225 
    226 
    227     /**
    228      * 获取当前日期上一周的结束日期 (周六)
    229      */
    230     public static String previousWeekEndDayByDate(String date) {
    231         int year = Integer.parseInt(date.substring(0,4));
    232         int month = Integer.parseInt(date.substring(4,6));
    233         int day = Integer.parseInt(date.substring(6));
    234         Calendar calendar = Calendar.getInstance();
    235         calendar.set(year, month-1, day);
    236         Date newdate = calendar.getTime();
    237         SimpleDateFormat sdf=new SimpleDateFormat("yyyyMMdd");
    238         Calendar cal = Calendar.getInstance();
    239         cal.setTime(newdate);
    240         int dayWeek = cal.get(Calendar.DAY_OF_WEEK);//获得当前日期是一个星期的第几天
    241         if(1 == dayWeek) {
    242             cal.add(Calendar.DAY_OF_MONTH, -1);
    243         }
    244         cal.setFirstDayOfWeek(Calendar.SUNDAY);//设置一个星期的第一天,按中国的习惯一个星期的第一天是星期一
    245         int s = cal.get(Calendar.DAY_OF_WEEK);//获得当前日期是一个星期的第几天
    246         cal.add(Calendar.DATE, cal.getFirstDayOfWeek()+(6-s));
    247         cal.add(Calendar.WEEK_OF_YEAR, -1);
    248         String imptimeBegin = sdf.format(cal.getTime());
    249 //      System.out.println("星期六的日期:"+imptimeBegin);
    250         return imptimeBegin;
    251     }
    252 
    253 
    254     /**
    255      * 获取当前日期当前一周的开始日期 (周日)
    256      */
    257     public static String getCurrentWeekFirstDayByDate(String date) {
    258         int year = Integer.parseInt(date.substring(0,4));
    259         int month = Integer.parseInt(date.substring(4,6));
    260         int day = Integer.parseInt(date.substring(6));
    261         Calendar calendar = Calendar.getInstance();
    262         calendar.set(year, month-1, day);
    263         Date newdate = calendar.getTime();
    264         SimpleDateFormat sdf=new SimpleDateFormat("yyyyMMdd");
    265         Calendar cal = Calendar.getInstance();
    266         cal.setTime(newdate);
    267         int dayWeek = cal.get(Calendar.DAY_OF_WEEK);//获得当前日期是一个星期的第几天
    268         if(1 == dayWeek) {
    269             cal.add(Calendar.DAY_OF_MONTH, -1);
    270         }
    271         cal.setFirstDayOfWeek(Calendar.SUNDAY);//设置一个星期的第一天,按中国的习惯一个星期的第一天是星期一
    272         int s = cal.get(Calendar.DAY_OF_WEEK);//获得当前日期是一个星期的第几天
    273         cal.add(Calendar.DATE, cal.getFirstDayOfWeek()-s);//根据日历的规则,给当前日期减往星期几与一个星期第一天的差值
    274 
    275         String imptimeBegin = sdf.format(cal.getTime());
    276         //  System.out.println("所在周星期日的日期:"+imptimeBegin);
    277         return imptimeBegin;
    278     }
    279     /**
    280      * 获取当前日期当前一周的结束日期 (周六)
    281      */
    282     public static String getCurrentWeekEndDayByDate(String date) {
    283         int year = Integer.parseInt(date.substring(0,4));
    284         int month = Integer.parseInt(date.substring(4,6));
    285         int day = Integer.parseInt(date.substring(6));
    286         Calendar calendar = Calendar.getInstance();
    287         calendar.set(year, month-1, day);
    288         Date newdate = calendar.getTime();
    289         SimpleDateFormat sdf=new SimpleDateFormat("yyyyMMdd");
    290         Calendar cal = Calendar.getInstance();
    291         cal.setTime(newdate);
    292         int dayWeek = cal.get(Calendar.DAY_OF_WEEK);//获得当前日期是一个星期的第几天
    293         if(1 == dayWeek) {
    294             cal.add(Calendar.DAY_OF_MONTH, -1);
    295         }
    296         cal.setFirstDayOfWeek(Calendar.SUNDAY);//设置一个星期的第一天,按中国的习惯一个星期的第一天是星期一
    297         int s = cal.get(Calendar.DAY_OF_WEEK);//获得当前日期是一个星期的第几天
    298         cal.add(Calendar.DATE, cal.getFirstDayOfWeek()+(6-s));
    299 
    300         String imptimeBegin = sdf.format(cal.getTime());
    301         return imptimeBegin;
    302     }
    303 
    304 
    305     /**
    306      * 返回上一个月的第一天
    307      * @param date20120304
    308      * @return  20120201
    309      */
    310     public static String previousMonthByDate(String date) {
    311         // TODO Auto-generated method stub
    312         int year = Integer.parseInt(date.substring(0,4));
    313         int month = Integer.parseInt(date.substring(4,6));
    314         int day = Integer.parseInt(date.substring(6));
    315         Calendar calendar = Calendar.getInstance();
    316         calendar.set(year, month-2, 1);
    317         Date newdate = calendar.getTime();
    318         SimpleDateFormat sdf=new SimpleDateFormat("yyyyMMdd");
    319         Calendar cal = Calendar.getInstance();
    320         cal.setTime(newdate);
    321         String imptimeBegin = sdf.format(cal.getTime());
    322 //      System.out.println(imptimeBegin);
    323         return imptimeBegin;
    324     }
    325 
    326     /**
    327      * 返回下一个月的第一天
    328      * @param date20120304
    329      * @return  20120401
    330      */
    331     public static String nextMonthByDate(String date) {
    332         // TODO Auto-generated method stub
    333         int year = Integer.parseInt(date.substring(0,4));
    334         int month = Integer.parseInt(date.substring(4,6));
    335         int day = Integer.parseInt(date.substring(6));
    336         Calendar calendar = Calendar.getInstance();
    337         calendar.set(year, month, 1);
    338         Date newdate = calendar.getTime();
    339         SimpleDateFormat sdf=new SimpleDateFormat("yyyyMMdd");
    340         Calendar cal = Calendar.getInstance();
    341         cal.setTime(newdate);
    342         String imptimeBegin = sdf.format(cal.getTime());
    343 //      System.out.println(imptimeBegin);
    344         return imptimeBegin;
    345     }
    346     /**
    347      * 返回当前月的第一天
    348      * @param date20120103
    349      * @return 20120101
    350      */
    351     public static String getCurrentMonthFirstDayByDate(String date) {
    352         int year = Integer.parseInt(date.substring(0,4));
    353         int month = Integer.parseInt(date.substring(4,6));
    354         int day = Integer.parseInt(date.substring(6));
    355         Calendar calendar = Calendar.getInstance();
    356         calendar.set(year, month-1, 1);
    357         Date newdate = calendar.getTime();
    358         SimpleDateFormat sdf=new SimpleDateFormat("yyyyMMdd");
    359         Calendar cal = Calendar.getInstance();
    360         cal.setTime(newdate);
    361         String imptimeBegin = sdf.format(cal.getTime());
    362         return imptimeBegin;
    363     }
    364 
    365 }
  • 相关阅读:
    linux下查看机器是cpu是几核
    Stylus 安装使用图解
    npm 安装配置
    vue-cli vue脚手架
    nodejs与npm
    超详细解决 PLSQL下拉数据库"空白"
    Oracle 11g Windows64位
    Mysql 5.7.x zip windows安装
    Windows下Nginx的启动、停止、重启等命令
    Swagger中最常用的几个注解
  • 原文地址:https://www.cnblogs.com/alimjan/p/7102186.html
Copyright © 2011-2022 走看看