首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

手写的java日期处理类。要是自己写的哦。

2012-10-21 
求一个手写的java日期处理类。。。要是自己写的哦。。我想要一个存的时候用date类型存入数据库的,取出来能处理

求一个手写的java日期处理类。。。要是自己写的哦。。
我想要一个存的时候用date类型存入数据库的,取出来能处理一次,显示为 9月25日 17:58:38 的形式的,如果是今天的话就是 今天/昨天 17:58:38 或者是 几个小时以前的那种。,。。。反正就就类是微博那种时间的手写的处理类。。。
我表示是自己对日期等的数据类型不精通,所以写起来有困难,。,,,希望哪位大神能把写的让我借鉴一下。

[解决办法]
用现有的Date和Calendar封装一下呗。。。
[解决办法]
这样行吗

Java code
package com.study.util;import java.text.SimpleDateFormat;import java.util.Date;public class DateUtil {    public static void main(String[] args) {        Date d = new Date();        long i = d.getTime() - 10000000;        System.out.println(getBefore(new Date(i)));    }    public static String getBefore(Date date){        long old = date.getTime();        long now = (new Date()).getTime();        long re = (now - old) / (1000 * 60);//分钟        long days = re / (24 * 60);        StringBuffer sb = new StringBuffer();        if(days > 1){            SimpleDateFormat sdf = new SimpleDateFormat("MM月dd日 hh:mm:ss");            sb.append(sdf.format(date));        }else if(days == 1){            SimpleDateFormat sdf = new SimpleDateFormat("hh:mm:ss");            sb.append("昨天").append(sdf.format(date));        }else{            re = re % (24 * 60);            long hours = re / 60;            long mins = re % 60;            if(hours != 0){                sb.append(hours).append("小时");            }            if(mins != 0){                sb.append(mins).append("分钟以前");            }        }        return sb.toString();    }}
[解决办法]
Java code
import java.text.SimpleDateFormat;import java.util.Date;public class MyDate {    /**     * @param args     * @throws Exception     */    public static void main(String[] args) throws Exception {        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");        System.out.println(new ChsDate(new Date()));        System.out.println(new ChsDate(sdf.parse("2012-09-27 15:58:30")));        System.out.println(new ChsDate(sdf.parse("2012-09-27 15:50:00")));        System.out.println(new ChsDate(sdf.parse("2012-09-27 10:50:00")));        System.out.println(new ChsDate(sdf.parse("2012-08-27 10:50:00")));    }}class ChsDate {    private static String NOW = "现在";    private static String HOURS_AGO = "小时前";    private static String MINUTES_AGO = "分钟前";    private static String SECONDS_AGO = "秒前";    private static long SECOND = 1000L;    private static long MINUTE = 60 * 1000L;    private static long HOUR = 60 * 60 * 1000L;    private static long DAY = 24 * 60 * 60 * 1000L;    private static SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");    private Date date;    public ChsDate(Date date) {        this.date = date;    }    @Override    public String toString() {        long c = new Date().getTime();        long p = this.date.getTime();        if (c - p > DAY) {            return sdf.format(date);        } else if (c - p > HOUR) {            return (c - p) / HOUR + HOURS_AGO;        } else if (c - p > MINUTE) {            return (c - p) / MINUTE + MINUTES_AGO;        } else if (c - p > SECOND) {            return (c - p) / SECOND + SECONDS_AGO;        }        return NOW;    }}
[解决办法]
Java code
package zl.framework.util.tool;import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date;import zl.framework.entity.Settled;/** * 处理日期的工具类 * @version 2.0 */public class DateUtil {        private static DateUtil bean = new DateUtil();        /**     * 单例模式获得bean     * @return DateUtil     */    public static DateUtil getBean() {        return bean;    }     /**     * @param type 0为日期部分 1为所有内容 2就是一串数字     * @return String     * 获得当前日期     */    public String getNowDate(int type) {        SimpleDateFormat format = null;        if (type == 0) {            format = Settled.FORMAT_DATE;        } else if (type == 1) {            format = Settled.FORMAT_DATE_TIME;        } else {            format = Settled.FORMAT_DATE_NO;        }        return format.format(new Date());    }    /**     * @param dateTime 日期时间(必须是标准格式,如果为空就取当前时间)     * 将日期转换成中文格式     * @return String     */    public String dateToChina(String dateTime) {        try {            if (null == dateTime || "".equals(dateTime)) {                dateTime = getNowDate(1);            }            Date date = Settled.FORMAT_DATE_TIME.parse(dateTime);            int year = Integer.parseInt(new SimpleDateFormat("yyyy").format(date));            int month = Integer.parseInt(new SimpleDateFormat("MM").format(date));            int day = Integer.parseInt(new SimpleDateFormat("dd").format(date));            return year + "年" + month + "月" + day + "日";        } catch (Exception e) {            e.printStackTrace();        }        return "";    }    /**     * 根据格式取出日期的一部分     * @param dateTime 日期时间(必须是标准格式,如果为空就取当前时间)     * @param part 你想要的格式     * @return String     */    public String getDatePart(String dateTime, String part) {        try {            SimpleDateFormat format = Settled.FORMAT_DATE_TIME;            Date time = new Date();            if (null != dateTime && !"".equals(dateTime)) {                time = format.parse(dateTime);            }            format = new SimpleDateFormat(part);            return format.format(time);        } catch (Exception e) {            e.printStackTrace();        }        return "";    }        /**     * 获得以后或以前的日期     * @param date 日期时间(必须是标准格式,如果为空就取当前时间)     * @param type 1为之前2为之后     * @param diff 相差多少秒     * @return String     */    public String getDetachDate(String date, int type, int diff) {                try {            SimpleDateFormat format = Settled.FORMAT_DATE_TIME;            Calendar now = Calendar.getInstance();            now.setTime(new Date());            if (null != date && !"".equals(date)) {                now.setTime(format.parse(date));            }            if (type == 1) {                now.set(Calendar.SECOND, now.get(Calendar.SECOND) - diff);            } else {                now.set(Calendar.SECOND, now.get(Calendar.SECOND) + diff);            }            return format.format(now.getTime());        } catch (Exception e) {            e.printStackTrace();        }        return "";    }        /**     * 计算时间差(单位秒)     * @param date1 前一个日期时间(必须是标准格式,不能为空)     * @param date2 后一个日期时间(必须是标准格式,如果为空就取当前时间)     * @return Long     */    public Long getDateDiff(String date1, String date2) {                try {            if (null != date1 && !"".equals(date1)) {                SimpleDateFormat format = Settled.FORMAT_DATE_TIME;                Date begin = format.parse(date1);                Date end = new Date();                if (null != date2 && !"".equals(date2)) {                    end = format.parse(date2);                }                return (end.getTime() - begin.getTime()) / 1000;            }        } catch (Exception e) {            e.printStackTrace();        }        return 0l;    }        /**     * 根据年月获得当月天数     * @param year 年份     * @param month 月份     * @return Integer     */    public Integer getDays(int year, int month) {        Integer days = 31;        if (month == 4 || month == 6 || month == 9 || month == 11) {            days = 30;        }        if (month == 2) {            if (year % 4 == 0) {                days = 29;            } else {                days = 28;            }        }        return days;    }        /**     * 获得今天的最早或最晚日期     * @param type 1表示最早,2表示最晚     * @return Date     */    public Date getTodayDate(int type) {        try {            String now = getNowDate(0);            SimpleDateFormat format = Settled.FORMAT_DATE_TIME;            if (type == 1) {                return format.parse(now + " 00:00:00");            } else if (type == 2) {                return format.parse(now + " 23:59:59");            }        } catch (Exception e) {            e.printStackTrace();        }        return null;    }    } 


[解决办法]
公司内部使用的自定义框架的一段源码,注释齐全,你都看得懂的!
[解决办法]
哥们 你打开api 看看 date的所有属性和用发 就明了了 或者用 javascript js都行 很强的date方法!!!!

热点排行