自写Date工具类

以前写项目的时候总是在使用到了时间的转换的时候才在工具类中添加一个方法,这样很容易导致代码冗余以及转换的方法注释不清晰导致每次使用都要重新看一遍工具类。因此整理出经常使用的一些转换,用作记录,以便以后使用。

此工具类主要用于获取时间戳以及各种时间类型之间的转换。

  1 package com.test;
  2
  3 import java.text.ParseException;
  4 import java.text.SimpleDateFormat;
  5 import java.util.Calendar;
  6 import java.util.Date;
  7
  8 import org.apache.commons.logging.Log;
  9 import org.apache.commons.logging.LogFactory;
 10
 11
 12 public class DateUtil {
 13
 14     private static final Log _log = LogFactory.getLog(DateUtil.class);
 15
 16
 17     public static void main(String[] args) {
 18
 19         //System.out.println(getTimeStamp());
 20
 21         //System.out.println(getDate(24,60,60,000));
 22
 23         System.out.println(getTimeFormat("2016-05-23", "yyyy-MM-dd", "yyyyMMdd"));
 24
 25     }
 26
 27
 28
 29
 30     /**
 31      * 获取自定义格式的时间字符串
 32      *
 33      * @param String format 例:"yyyy-MM-dd hh:mm:ss:SSS EEE"
 34      * @author panjianghong 2016-8-29
 35      * */
 36     public static String getTimeFormat(String format){
 37
 38         Date date = new Date();
 39         SimpleDateFormat sdf = new SimpleDateFormat(format);
 40         String time = sdf.format(date);
 41
 42         return time;
 43     }
 44
 45
 46     /**
 47      * 获取自定义格式的时间字符串
 48      *
 49      * @param String format 例:"yyyy-MM-dd hh:mm:ss:SSS EEE"
 50      * @param Date date
 51      * @author panjianghong 2016-8-29
 52      * */
 53     public static String getTimeFormat(String format,Date date){
 54
 55         SimpleDateFormat sdf = new SimpleDateFormat(format);
 56         String time = sdf.format(date);
 57
 58         return time;
 59     }
 60
 61     /**
 62      * 不同字符串时间格式间的转化
 63      *
 64      * @param String String time 例:"20140807"
 65      * @param String format 例:"yyyyMMdd"
 66      * @param String newFormat 例:"yyyy-MM-dd"
 67      * @author panjianghong 2016-8-29
 68      * */
 69     public static String getTimeFormat(String time, String format, String newFormat){
 70
 71         long timestamp = getTimeStamp(time, format);
 72
 73         SimpleDateFormat sdf = new SimpleDateFormat(newFormat);
 74
 75         String timeFormat = sdf.format(getDate(timestamp));
 76
 77         return timeFormat;
 78     }
 79
 80     /**
 81      * 根据字符串类型的时间戳获取自定义格式的时间字符串
 82      *
 83      * @param String format
 84      * @param String timestamp
 85      * @author panjianghong 2016-8-29
 86      * */
 87     public static String getTimeFormat(String format,String timestamp){
 88
 89         Date date = getDate(timestamp);
 90         SimpleDateFormat sdf = new SimpleDateFormat(format);
 91         String time = sdf.format(date);
 92
 93         return time;
 94     }
 95
 96
 97     /**
 98      * 根据长整型类型的时间戳获取自定义格式的时间字符串
 99      *
100      * @param String format
101      * @param long timestamp
102      * @author panjianghong 2016-8-29
103      * */
104     public static String getTimeFormat(String format,long timestamp){
105
106         Date date = getDate(timestamp);
107         SimpleDateFormat sdf = new SimpleDateFormat(format);
108         String time = sdf.format(date);
109
110         return time;
111     }
112
113     /**
114      * 获取当前时间的时间戳
115      * @author panjianghong 2016-8-29
116      * */
117     public static long getTimeStamp(){
118
119         Date date = new Date();
120         long timestamp = date.getTime();
121
122         return timestamp;
123     }
124
125     /**
126      * 获取传递时间参数的时间戳
127      * @param  Date date
128      * @author panjianghong 2016-8-29
129      * */
130     public static long getTimeStamp(Date date){
131
132         long timestamp = date.getTime();
133
134         return timestamp;
135     }
136
137     /**
138      * 根据时间字符串和时间格式获取时间戳
139      * @param String String time 例:"20140807"
140      * @param String format 例:"yyyyMMdd"
141      * @author panjianghong 2016-8-29
142      * */
143     public static long getTimeStamp(String time, String format){
144
145         Date date = getDate(time, format);
146
147         long timestamp = date.getTime();
148
149         return timestamp;
150     }
151
152
153     /**
154      * 根据字符串形式的时间戳获取当前时间
155      * @param String time
156      * @return Date date
157      * @author panjianghong 2016-8-29
158      * */
159     public static Date getDate(String timestamp){
160
161         Date date;
162         try {
163             date = new Date(Long.parseLong(timestamp));
164             return date;
165         } catch (NumberFormatException e) {
166             _log.error("字符串时间戳转换长整型数据失败!");
167         }
168
169         return null;
170     }
171
172     /**
173      * 根据长整型形式的时间戳获取当前时间
174      * @param String time
175      * @return Date date
176      * @author panjianghong 2016-8-29
177      * */
178     public static Date getDate(long timestamp){
179         Date date = new Date(timestamp);
180         return date;
181     }
182
183     /**
184      * 根据时间字符串和时间格式获取时间
185      * @param String time 例:"20140807"
186      * @param String format 例:"yyyyMMdd"
187      * @return Date date
188      * @author panjianghong 2016-8-29
189      * */
190     public static Date getDate(String time, String format){
191
192         SimpleDateFormat sdf = new SimpleDateFormat(format);
193         try {
194             Date date = sdf.parse(time);
195             return date;
196         } catch (ParseException e) {
197             _log.error("字符串转换时间失败!");
198         }
199
200         return null;
201     }
202
203
204     /**
205      * 获得文字类型的时间 比如:12小时前 33分钟前 10秒前
206      * 大于1天的格式 yyyy-MM-dd HH:mm:ss
207      * @param Date date
208      * @return String
209      * @author panjianghong 2016-8-29
210      */
211     public static String getTimeText(Date date)
212     {
213         long subTime=((new Date().getTime())-date.getTime())/1000;
214         long sub=0;
215         sub=subTime/(24*60*60);
216         if(sub>0)            //大于1天
217         {
218             return getTimeFormat("yyyy-MM-dd HH:mm:ss",date);
219         }
220         sub=subTime%(24*60*60)/(60*60);
221         if(sub>0)
222         {
223             return sub+"小时前";
224         }
225         sub=subTime%(24*60*60)%(60*60)/60;
226         if(sub>0)
227         {
228             return sub+"分钟前";
229         }
230         sub=subTime%(24*60*60)%(60*60)%60;
231         return sub+"秒前";
232     }
233
234     /**
235      * 获得文字类型的时间 比如:12小时前 33分钟前 10秒前
236      * 自定义大于1天的格式
237      * @param Date date
238      * @param String format
239      * @return String
240      * @author panjianghong 2016-8-29
241      */
242     public static String getTimeText(Date date, String format)
243     {
244         long subTime=((new Date().getTime())-date.getTime())/1000;
245         if(subTime < 0){
246             _log.error("输入的日期超过当前时间!");
247             return null;
248         }
249         long sub=0;
250         sub=subTime/(24*60*60);
251         if(sub>0)            //大于1天
252         {
253             return getTimeFormat(format,date);
254         }
255         sub=subTime%(24*60*60)/(60*60);
256         if(sub>0)
257         {
258             return sub+"小时前";
259         }
260         sub=subTime%(24*60*60)%(60*60)/60;
261         if(sub>0)
262         {
263             return sub+"分钟前";
264         }
265         sub=subTime%(24*60*60)%(60*60)%60;
266         return sub+"秒前";
267     }
268 }
时间: 2024-12-20 05:51:10

自写Date工具类的相关文章

java中IO写文件工具类

下面是一些根据常用java类进行组装的对文件进行操作的类,平时,我更喜欢使用Jodd.io中提供的一些对文件的操作类,里面的方法写的简单易懂. 其中jodd中提供的JavaUtil类中提供的方法足够我们使用,里面的方法写的非常简练,例如append,read等方法,封装更好,更符合面向对象, 这里面我写的一些方法可多都是模仿jodd,从里面进行抽取出来的. /** * 获取路径文件夹下的所有文件 * @param path * @return */ public static File[] ge

java date 工具类 DateUtil 格式转换

package systems.baseutil.tool; /** * <p>Title: 时间和日期的工具类</p> * <p>Description: DateUtil类包含了标准的时间和日期格式,以及这些格式在字符串及日期之间转换的方法</p> * <p>Copyright: Copyright (c) 2007 advance,Inc. All Rights Reserved</p> * <p>Company:

写shell工具类,一个常用实例

简述: 当我们常用到某些指令时,我们就需要将这个命令进行封装.封装的设计和扩展,因人而异.但为了每个人都能够了解到这个命令,常需要写出这个类的help. 关键字: 函数.getopts 函数 通过自定义函数(可参阅:http://www.runoob.com/linux/linux-shell-func.html),能够实现过程操作.输入捕获(read).输出获取(return). getopts 为了获取用户在命令下的参数,通过该命令来操作(可参阅:https://blog.csdn.net/

Date 工具类(包含常用的一些时间方法)

package com.fh.util; import java.sql.Timestamp; import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Calendar; import java.util.Date; import java.util.GregorianC

date 工具类

package lizikj.bigwheel.common.vo.merchandise.util; import java.text.DateFormat;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date; import org.apache.log4j.Logger; /** * 时间帮助类 * */public

Date工具类

不多说看! 1 public class DateUtils { 2 3 public static final String datetimeFormater = "yyyy-MM-dd HH:mm:ss"; 4 public static final String dateFormater = "yyyy-MM-dd"; 5 6 // private static Date date ; 7 /** 8 * 格式化时间 9 */ 10 public static

JAVA时间Date工具类

package com.common.util; import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; public class DateUtils { private StringBuffer buffer = new StringBuffer(); pri

Java 日期格式化,Java 日期工具类,Java Date工具类

================================ ©Copyright 蕃薯耀 2020-01-19 https://www.cnblogs.com/fanshuyao/ import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import org.apache.commons.lang.StringU

使用Jsoup.jar写的工具类(java提取Html中的文本)

package cn.anzhuoyue.jfinalBlog.util; import org.jsoup.Jsoup; import org.jsoup.nodes.Document; import org.jsoup.nodes.Element; import org.jsoup.safety.Whitelist; import com.jfinal.kit.StringKit; public class HtmlUtil { // 只有纯文本可以通过 public static Stri