vo中对date格式的时间格式的处理,方便到前台展示

摘要:
之前一个同事的写法是这样的(绿色的):publicstaticfinalStringGENERAL_PATTERN_2="yyyy-MM-ddHH:mm:ss";其实没必要这样,在vo里面的set方法做个赋值:SimpleDateFormatdf=newSimpleDateFormat("yyyy-MM-ddHH:mm:ss");这样不行,因为这里的createtime是string的,不能这样写

之前一个同事的写法是这样的(绿色的):

vo中对date格式的时间格式的处理,方便到前台展示第1张

public static final String GENERAL_PATTERN_2 = "yyyy-MM-dd HH:mm:ss";

其实没必要这样,在vo里面的set方法做个赋值:

vo中对date格式的时间格式的处理,方便到前台展示第2张

SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

这样不行,因为这里的createtime是string的,不能这样写(如果createtime属性是Date类型,给String类型的createtimeStr 属性赋值 可以这样写,createtimeStr这个字段值常用于前端展示~ 不用再在前端处理),写了访问报500错:

vo中对date格式的时间格式的处理,方便到前台展示第3张

那就这样写:

    publicString getCreatetime() {
        try{
            returnDateUtils.getStringDate(DateUtils.stringToDate(createtime, DateUtil.GENERAL_PATTERN_2));
        } catch(ParseException e) {
            e.printStackTrace();
        }
        returncreatetime;
    }

重要工具类DateUtils.java具体代码如下

 

importjava.math.BigDecimal;
importjava.text.ParseException;
importjava.text.SimpleDateFormat;
importjava.util.Calendar;
importjava.util.Date;
importjava.util.GregorianCalendar;

public classDateUtils {

    private static final int BIN_DIGITS = 12;

    public static final short ONE_MS = 1 <<BIN_DIGITS;

    public staticString getDatePattern() {
        return "yyyy-MM-dd";
    }

    public staticString getTimePattern() {
        return "yyyy-MM-dd HH:mm:ss";
    }

    public staticString getDatePattern8() {
        return "yyyyMMdd";
    }

    public staticString getTimePattern14() {
        return "yyyyMMddHHmmss";
    }

    public static Date getDateTime(Date date, String format) throwsParseException {
        SimpleDateFormat df = newSimpleDateFormat(format);
        String strDate =df.format(date);
        Calendar cal = newGregorianCalendar();
        cal.setTime(stringToDate(strDate, format));
        returncal.getTime();
    }

    public static intgetYear() {
        returnCalendar.getInstance().get(Calendar.YEAR);
    }

    public static intgetYear(Date date) {
        Calendar cal = newGregorianCalendar();
        cal.setTime(date);
        returncal.get(Calendar.YEAR);
    }

    public static intgetMonth() {
        return Calendar.getInstance().get(Calendar.MONTH) + 1;
    }

    public static intgetMonth(Date date) {
        Calendar cal = newGregorianCalendar();
        cal.setTime(date);
        return cal.get(Calendar.MONTH) + 1;
    }

    public static intgetDayOfMonth() {
        returnCalendar.getInstance().get(Calendar.DAY_OF_MONTH);
    }

    public static intgetDayOfMonth(Date date) {
        Calendar cal = newGregorianCalendar();
        cal.setTime(date);
        returncal.get(Calendar.DAY_OF_MONTH);
    }

    public static final Date stringToDate(String strDate, String format) throwsParseException {
        SimpleDateFormat df = null;
        Date date = null;
        df = newSimpleDateFormat(format);

        try{
            date =df.parse(strDate);
        } catch(ParseException pe) {
            throw newParseException(pe.getMessage(), pe.getErrorOffset());
        }
        return(date);
    }

    public static Date stringToDate(String strDate) throwsParseException {
        Date aDate = null;
        try{
            aDate =stringToDate(strDate, getDatePattern());
        } catch(ParseException pe) {
            pe.printStackTrace();
            throw newParseException(pe.getMessage(), pe.getErrorOffset());
        }
        returnaDate;
    }

    public static finalString dateToString(Date aDate, String format) {
        SimpleDateFormat df = null;
        String returnValue = "";

        if (aDate == null) {
            //
        } else{
            df = newSimpleDateFormat(format);
            returnValue =df.format(aDate);
        }

        return(returnValue);
    }

    public static finalString getStringDate(Date date) {
        SimpleDateFormat format1 = new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒");
        returnformat1.format(date.getTime());
    }

    public static finalString dateToString(Date aDate) {
        returndateToString(aDate, getDatePattern());
    }

    public static finalString timeToString(Date aDate) {
        returndateToString(aDate, getTimePattern());
    }

    public static Date getDate(Date aDate) throwsParseException {
        returngetDateTime(aDate, getDatePattern());
    }

    public static Date getTime(Date aDate) throwsParseException {
        returngetDateTime(aDate, getTimePattern());
    }

    public static longgetDaysBetween(Date dtFrom, Date dtEnd) {
        long begin =dtFrom.getTime();
        long end =dtEnd.getTime();
        long inter = end -begin;
        if (inter < 0) {
            inter = inter * (-1);
        }
        long dateMillSec = 24 * 60 * 60 * 1000;

        long dateCnt = inter /dateMillSec;

        long remainder = inter %dateMillSec;

        if (remainder != 0) {
            dateCnt++;
        }
        returndateCnt;
    }

    public static longgetMinsBetween(Date dtFrom, Date dtEnd) {
        long begin =dtFrom.getTime();
        long end =dtEnd.getTime();
        long inter = end -begin;
        return inter / 60000;
    }

    public static String getLastDateOfyearAndMonth(String yearAndMonth) throwsException {
        String start = yearAndMonth + "01";
        Date startDate = DateUtils.stringToDate(start, "yyyyMMdd");
        Calendar calendar =Calendar.getInstance();
        calendar.setTime(startDate);
        calendar.add(Calendar.MONTH, 1);
        calendar.add(Calendar.DAY_OF_MONTH, -1);
        String end = DateUtils.dateToString(calendar.getTime(), "yyyyMMdd");
        returnend;
    }

    public static String getNextMonthString(String strDate, String format) throwsParseException {
        Date date =stringToDate(strDate, format);
        Calendar cal = newGregorianCalendar();
        cal.setTime(date);
        cal.add(Calendar.MONTH, 1);
        returndateToString(cal.getTime(), format);
    }

    /*** 获取上个月的最后一天
     * 
     * @paramdate
     * @return* @throwsParseException
     */
    public static Date getLastDayOfLastMonth(Date date) throwsParseException {

        String str_firstDay = dateToString(date, "yyyyMM") + "01";
        Date date_firstDay = stringToDate(str_firstDay, "yyyyMMdd");
        if (date_firstDay != null) {
            Calendar cal =Calendar.getInstance();
            cal.setTime(date_firstDay);
            cal.add(Calendar.DAY_OF_MONTH, -1);
            returncal.getTime();
        }
        return null;
    }

    /*** 获取上个月的最后一天
     * 
     * @paramdate
     * @return* @throwsParseException
     */
    public static String getLastDayOfLastMonth(Date date, String format) throwsParseException {

        returndateToString(getLastDayOfLastMonth(date), format);
    }

    /*** 获取传入时间所在月的最后一天
     * 
     * @paramdate
     * @return
     */
    public static intgetLastDay(Date date) {

        Calendar calendar =Calendar.getInstance();
        calendar.set(Calendar.DAY_OF_MONTH, 1);
        calendar.add(Calendar.MONTH, 1);
        calendar.add(Calendar.DAY_OF_MONTH, -1);

        returncalendar.get(Calendar.DAY_OF_MONTH);

    }

    /*** 获取指定时间下个月的第一天零时00:00:00
     * 
     * @paramdate
     * @return
     */
    public staticDate getNextMonthFirstDay(Date date) {

        Calendar calendar =Calendar.getInstance();
        calendar.setTime(date);
        calendar.add(Calendar.MONTH, 1);
        calendar.set(Calendar.DAY_OF_MONTH, 1);
        calendar.set(Calendar.HOUR_OF_DAY, 0);
        calendar.set(Calendar.MINUTE, 0);
        calendar.set(Calendar.SECOND, 0);
        returncalendar.getTime();
    }

    public staticDate getMonthLastDay(Date date) {

        Calendar calendar =Calendar.getInstance();
        calendar.setTime(date);
        calendar.add(Calendar.MONTH, 1);
        calendar.set(Calendar.DAY_OF_MONTH, 1);
        calendar.add(Calendar.DAY_OF_MONTH, -1);
        calendar.set(Calendar.HOUR_OF_DAY, 23);
        calendar.set(Calendar.MINUTE, 59);
        calendar.set(Calendar.SECOND, 59);
        returncalendar.getTime();
    }

    /*** 获取一个月的开始时间
     * 
     * @paramdate
     * @return
     */
    public staticDate getMonthFirstDay(Date date) {

        Calendar calendar =Calendar.getInstance();
        calendar.setTime(date);
        calendar.set(Calendar.DAY_OF_MONTH, 1);
        calendar.set(Calendar.HOUR_OF_DAY, 0);
        calendar.set(Calendar.MINUTE, 0);
        calendar.set(Calendar.SECOND, 0);
        calendar.set(Calendar.MILLISECOND, 0);
        returncalendar.getTime();
    }

    /*** 当前时间是否在抽奖的有效时间内
     * 
     * @return
     */
    public static booleanraffleEffectiveTime() {
        boolean effective = false;
        try{
            Date begin = DateUtils.stringToDate("20130701000000", "yyyyMMddHHmmss");
            Date end = DateUtils.stringToDate("20131001000000", "yyyyMMddHHmmss");
            Date current = newDate();

            if (current.compareTo(begin) == 1 && current.compareTo(end) == -1) {
                return true;
            }
        } catch(ParseException e) {
            e.printStackTrace();
        }

        returneffective;

    }

    /*** 将源格式字符串日期转换成目标格式字符串日期
     * 
     * @paramorigStrDate 字符串日期
     * @paramorigFormat 源格式
     * @paramdestFormat 目标格式
     * @return* @throwsParseException
     */
    public static final String dateStrToString(String origStrDate, String origFormat, String destFormat) throwsParseException {
        Date origDate =stringToDate(origStrDate, origFormat);
        returndateToString(origDate, destFormat);
    }

    //季度一年四季, 第一季度:2月-4月, 第二季度:5月-7月, 第三季度:8月-10月, 第四季度:11月-1月
    private static int getQuarterInMonth(int month, booleanisQuarterStart) {
        int months[] = { 1, 4, 7, 10};
        if (!isQuarterStart) {
            months = new int[] { 3, 6, 9, 12};
        }
        if (month >= 2 && month <= 4)
            return months[0];
        else if (month >= 5 && month <= 7)
            return months[1];
        else if (month >= 8 && month <= 10)
            return months[2];
        else
            return months[3];
    }

    //获得本周一与当前日期相差的天数
    public static intgetMondayPlus() {
        Calendar cd =Calendar.getInstance();
        int dayOfWeek =cd.get(Calendar.DAY_OF_WEEK);
        if (dayOfWeek == 1) {
            return -6;
        } else{
            return 2 -dayOfWeek;
        }
    }

    //获得当前周- 周一的日期
    public staticDate getCurrentMonday() {
        Calendar cal =Calendar.getInstance();
        cal.setTime(getThisWeekMonday(newDate()));
        cal.add(Calendar.DATE, -7);
        returncal.getTime();
    }

    public staticDate getThisWeekMonday(Date date) {
        Calendar cal =Calendar.getInstance();
        cal.setTime(date);
        //获得当前日期是一个星期的第几天
        int dayWeek =cal.get(Calendar.DAY_OF_WEEK);
        if (1 ==dayWeek) {
            cal.add(Calendar.DAY_OF_MONTH, -1);
        }
        //设置一个星期的第一天,按中国的习惯一个星期的第一天是星期一
cal.setFirstDayOfWeek(Calendar.MONDAY);
        //获得当前日期是一个星期的第几天
        int day =cal.get(Calendar.DAY_OF_WEEK);
        //根据日历的规则,给当前日期减去星期几与一个星期第一天的差值
        cal.add(Calendar.DATE, cal.getFirstDayOfWeek() -day);
        returncal.getTime();
    }

    /*** 获得当月起始时间
     * 
     * @return
     */
    public staticDate getStartMounth(Date date) {
        Calendar calendar =Calendar.getInstance();
        calendar.setTime(date);
        calendar.set(Calendar.DAY_OF_MONTH, 1);
        calendar.set(Calendar.HOUR_OF_DAY, 0);
        calendar.set(Calendar.MINUTE, 0);
        calendar.set(Calendar.SECOND, 0);
        calendar.set(Calendar.MILLISECOND, 0);
        returncalendar.getTime();
    }

    /*** 获取当前季度 起始时间
     * 
     * @return
     */
    public staticDate getStartQuarter(Date date) {
        SimpleDateFormat longSdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        SimpleDateFormat shortSdf = new SimpleDateFormat("yyyy-MM-dd");
        Calendar c =Calendar.getInstance();
        int currentMonth = c.get(Calendar.MONTH) + 1;
        Date now = null;
        try{
            if (currentMonth >= 1 && currentMonth <= 3)
                c.set(Calendar.MONTH, 0);
            else if (currentMonth >= 4 && currentMonth <= 6)
                c.set(Calendar.MONTH, 3);
            else if (currentMonth >= 7 && currentMonth <= 9)
                c.set(Calendar.MONTH, 4);
            else if (currentMonth >= 10 && currentMonth <= 12)
                c.set(Calendar.MONTH, 9);
            c.set(Calendar.DATE, 1);
            now = longSdf.parse(shortSdf.format(c.getTime()) + " 00:00:00");
        } catch(Exception e) {
            e.printStackTrace();
        }
        returnnow;
    }

    /*** 获取当年起始时间
     */
    public staticDate getStartYear(Date date) {
        Calendar currCal =Calendar.getInstance();
        int currentYear =currCal.get(Calendar.YEAR);
        returngetYearFirst(currentYear);
    }

    /*** 获取某年第一天日期
     * 
     * @paramyear 年份
     * @returnDate
     */
    public static Date getYearFirst(intyear) {
        Calendar calendar =Calendar.getInstance();
        calendar.clear();
        calendar.set(Calendar.YEAR, year);
        Date currYearFirst =calendar.getTime();
        returncurrYearFirst;
    }

    public static void main(String[] args) throwsParseException {

//boolean effective=false;
//try {
//Date d=getMonthFirstDay(new Date());
//System.out.println(DateUtils.dateToString(d, "yyyyMMddHHmmsswww"));
//} catch (Exception e) {
//e.printStackTrace();
//}
        Date receiveTime = DateUtils.stringToDate("20131226", "yyyyMMdd");

        Calendar calendar =Calendar.getInstance();
        calendar.setTime(receiveTime);

        int week =calendar.get(Calendar.DAY_OF_WEEK);
        if (week <Calendar.WEDNESDAY) {
            calendar.add(Calendar.DATE, -14);
        } else{
            calendar.add(Calendar.DATE, -7);
        }
        calendar.set(Calendar.DAY_OF_WEEK, Calendar.WEDNESDAY);
        Date effectiveStart =calendar.getTime();
        Date effectiveEnd =receiveTime;

        System.out.println(DateUtils.dateToString(effectiveStart, "yyyyMMddHHmmsswww"));
        System.out.println(DateUtils.dateToString(effectiveEnd, "yyyyMMddHHmmsswww"));
    }

    /*** 获取两个时间秒差数(带毫秒数)
     * 
     * @paramdtFrom
     * @paramdtEnd
     * @return
     */
    public static doublegetSecsBetweenD(Date dtFrom, Date dtEnd) {
        BigDecimal begin = newBigDecimal(dtFrom.getTime());
        BigDecimal end = newBigDecimal(dtEnd.getTime());
        BigDecimal inter =end.subtract(begin);
        return inter.divide(new BigDecimal("1000")).doubleValue();
    }

}

免责声明:文章转载自《vo中对date格式的时间格式的处理,方便到前台展示》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇HSF服务的开发与使用VMware 安装 Red Hat 6 虚拟机下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

spring boot 重定向

/** * 测试各个html文件用。 * @param model * @return */ @RequestMapping("home") public String home(RedirectAttributes model) { model.addAttribute("...

C#中char[]与string之间的转换;byte[]与string之间的转化

(1)C#中char[]与string互相转换的写法:string 转换成 Char[]string ss="abcdefg";char[] cc=ss.ToCharArray();Char[] 转换成stringstring s=new string(cc);------------------------------------------------...

C# 通过ServiceStack 操作Redis——List类型的使用及示例

Redis list的实现为一个双向链表,即可以支持反向查找和遍历,更方便操作,不过带来了部分额外的内存开销, /// <summary> /// Redis list的实现为一个双向链表,即可以支持反向查找和遍历,更方便操作,不过带来了部分额外的内存开销, /// Redis内部的很多实现,包括发送缓冲队列等也都是用的这...

C# JSON使用的常用技巧(二)

JSON在php里一句json_encode就可以得到 在C#里我们同样也很容易的可以得到 用到的类库:Newtonsoft.Json.dll 实体类: class Cat { public string A { get; set; } public string B { get; set; } } 通过 JsonConvert:SerializeObj...

Alertmanager配置概述

Alertmanager配置概述 Alertmanager主要负责对Prometheus产生的告警进行统一处理,因此在Alertmanager配置中一般会包含以下几个主要部分: 全局配置(global):用于定义一些全局的公共参数,如全局的SMTP配置,Slack配置等内容; 模板(templates):用于定义告警通知时的模板,如HTML模板,邮件模板...

java微信二次第三方开发,token认证,消息事件接收,图文素材库,自定义菜单等功能

基于之前的文章SSM配置的项目:http://www.cnblogs.com/mangyang/p/5168291.html 来进行微信第三方开发, 微信二次开发,官方还是网上有很多介绍了,这里就不在进行讲述了 直接上干货。 首先 与微信对接,服务器配置,需要80端口和443端口开放的服务器,这里推荐 使用 python 的pagekite,一款反向代理...