前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >用Java实现处理日期的工具类——常用日期处理方法

用Java实现处理日期的工具类——常用日期处理方法

作者头像
用户1289394
发布于 2018-02-27 07:10:29
发布于 2018-02-27 07:10:29
1.2K0
举报
文章被收录于专栏:Java学习网Java学习网

日期处理是开发过程中经常遇到的问题,以下是总结了开发中常用的方法,代码如下:

代码语言:js
AI代码解释
复制
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
/**
*
* @项目名 ssh
* @功能 处理日期的工具类
* @类名 DateUtils
* @作者 Java自学通
* @日期 Aug 30, 20113:35:30 PM
* @版本 1.0
*/
public final class DateUtils {
private static SimpleDateFormat format = new SimpleDateFormat(
"yyyy年MM月dd日HH时mm分ss�?");
private DateUtils() {
}
public static SimpleDateFormat getFormat() {
return format;
}
/**
* 根据日期得到星期中的天数
*
* @param date
* 日期
* @return 星期�?
*/
public static String formatWeek(String date) {
SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd");
Date d = null;
try {
d = sd.parse(date);
} catch (ParseException e) {
e.printStackTrace();
}
return getFormatWeek(d);
}
/**
* 设置默认格式�?
*
* @param format
* 格式
*/
public static void setFormat(SimpleDateFormat format) {
DateUtils.format = format;
}
/**
* 得到当前日期
*
* @return
*/
public static Date getNowDate() {
return new Date();
}
/**
* 设置默认格式
*
* @param format
* 格式
*/
public static void setFormat(String format) {
DateUtils.format = new SimpleDateFormat(format);
}
/**
* 得到格式化后的日�?
*
* @param date
* 日期
* @return 日期
*/
public static String getFormatDate(Date date) {
return format.format(date);
}
/**
* 得到格式化后的日�?
*
* @param date
* @param foramt
* @return
*/
public static String getFormatDate(Date date, String foramt) {
return new SimpleDateFormat(foramt).format(date);
}
/**
* 得到格式化后的日�?
*
* @param date
* @return
* @throws ParseException
*/
public static String getFormatDate(String date) throws ParseException {
return format.format(format.parse(date));
}
/**
* 得到与当前小时间�?
*
* @param date
* 日期
* @return
*/
public static long getHourSpacing(Date date) {
long hour = 60l * 60l * 1000l;
return (new Date().getTime() - date.getTime()) / hour;
}
/**
* 得到两个日期的小时间�?
*
* @param before
* 之前的日�?
* @param after
* 之后的日�?
* @return 小时间隔
*/
public static long getHourSpacing(Date before, Date after) {
long hour = 60l * 60l * 1000l;
return (after.getTime() - before.getTime()) / hour;
}
/**
* 得到与当前日期小时间�?
*
* @param date
* @param fmt
* @return
* @throws ParseException
*/
public static long getHourSpacing(String date, String fmt)
throws ParseException {
long hour = 60l * 60l * 1000l;
setFormat(fmt);
Date temp = format.parse(date);
return (new Date().getTime() - temp.getTime()) / hour;
}
public static String passTime(Date oldTime) throws Exception {
long between = DateUtils.countTime(oldTime);
long day1 = between / (24 * 3600);
long hour1 = between % (24 * 3600) / 3600;
long minute1 = between % 3600 / 60;
long second1 = between;
String result = "刚刚";
if (day1 == 0 && hour1 == 0 && minute1 == 0 && second1 != 0) {
result = String.valueOf(second1) + "秒前";
}
if (day1 == 0 && hour1 == 0 && minute1 != 0) {
result = String.valueOf(minute1) + "分前";
}
if (day1 == 0 && hour1 != 0) {
result = String.valueOf(hour1) + "小时前";
}
if (day1 != 0) {
result = String.valueOf(day1) + "天前";
}
return result;
}
// 计算时间;
private static long countTime(Date oldTime) throws Exception {
SimpleDateFormat dfs = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
java.util.Date begin = dfs.parse(dfs.format(oldTime).toString());
java.util.Date end = dfs.parse(dfs.format(new Date()).toString());
long between = (end.getTime() - begin.getTime()) / 1000;// 除以1000是为了转换成秒
return between;
}
/**
* 得到時間間隔
*
* @param before
* @param after
* @param timeMillis
* @return
*/
public static long getTimeSpacing(Date before, Date after, long timeMillis) {
return before.getTime() - after.getTime() > 0 ? (before.getTime() - after
.getTime())
/ timeMillis
: (after.getTime() - before.getTime()) / timeMillis;
}
/**
* 得到時間間隔
*
* @param date
* @param timeMillis
* @return
*/
public static long getTimeSpacing(Date date, long timeMillis) {
Date da = new Date();
return da.getTime() - date.getTime() > 0 ? (da.getTime() - date
.getTime())
/ timeMillis : (date.getTime() - da.getTime()) / timeMillis;
}
/**
* 根據年月得到天數
*
* @param year
* @param month
* @return
*/
public static int daysOfMonth(int year, int month) {
int days[] = { 31, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
if (2 == month && 0 == (year % 4)
&& (0 != (year % 100) || 0 == (year % 400))) {
days[2] = 29;
}
return (days[month]);
}
/**
* 將字符格式轉換成日期格式
*
* @param content
* @param format
* @return
* @throws ParseException
*/
public static Date formatDate(String content, String format)
throws ParseException {
SimpleDateFormat sf = new SimpleDateFormat(format);
return sf.parse(content);
}
/**
* 格式轉換
*
* @param content
* @param format1
* @return
*/
public static String getFormatDate(String content, String format1) {
SimpleDateFormat sf = new SimpleDateFormat(format1);
Date date;
try {
date = format.parse(content);
} catch (ParseException e) {
date = new Date();
}
return sf.format(date);
}
/**
* 根据日期得到星期�?
*
* @param date
* 日期
* @return 星期�?
*/
public static String getFormatWeek(Date date) {
SimpleDateFormat sdw = new SimpleDateFormat("E");
return sdw.format(date);
}
/**
* 根据当前时间获得昨天日期;
*
* @return
*/
public static Date getYesterday(Date time) {
Calendar cd = Calendar.getInstance();
cd.setTime(time);
cd.add(Calendar.DATE, -1);
return cd.getTime();
}
/**
* 根据当前时间获得明天日期;
*
* @return
*/
public static Date getTomorrow(Date time) {
Calendar cd = Calendar.getInstance();
cd.setTime(time);
cd.add(Calendar.DATE, 1);
return cd.getTime();
}
/**
* 当前时间加的天数;
*
* @param time
* 当前时间;
* @param day
* 相加的天数
* @return
*/
public static Date addNowTimeDay(Date time, int day) {
SimpleDateFormat e = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
Date date = time;
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
calendar.add(calendar.DAY_OF_MONTH, +day);
date = calendar.getTime();
return date;
}
}
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2017-11-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Java学习网 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
DateUtils 日期工具类
/** * Copyright &copy; 2012-2014 <a href="https://github.com.bra.>JeeSite</a> All rights reserved. */ package com.bra.common.utils; import org.apache.commons.lang3.time.DateFormatUtils; import java.text.ParseException; import java.text.SimpleDateFormat
week
2018/08/24
1.3K0
Java实用工具类二:时间格式转换工具
此文仅对自己工作中用到的类进行总结,方便以后的使用。 类一: package com.cn.hnust.util; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; public class DateUtil { /** * 获取起止日期 * @param sdf 需要显示的日期格式 * @param date 需要参照的日期 *
芈亓
2022/06/17
1.3K0
日期的工具类
import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections.CollectionUtils;
全栈程序员站长
2021/07/07
6900
java最全最常用的日期工具类(随时补充)
@Slf4j public final class DateUtils { private DateUtils() { } private static final String FORMAT_YYYYMMDDHHMMSS = "yyyy-MM-dd HH:mm:ss"; public static final String FORMAT_YYYY_MM_DD = "yyyy-MM-dd"; public static final String FORMAT_
疯狂的KK
2023/04/10
1.2K0
Java常见日期格式及日期的计算工具类
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.GregorianCalendar; import java.util.List;
一头小山猪
2020/06/15
4.3K0
Java中String、Date、LocalDate互相转换工具类
该工具类实现的功能有: 1.String日期转Date 2.Date日期转String 3.Date日期转LocaDate 4.LocalDate转Date 5.获取当前日期(String) 6.获取当前日期(Date) 7.获取两个日期之间的间隔 8.获取日期的星期 9.比较两个日期的大小 10.日期转为时间戳 11.时间戳转日期 12.去除日期连接符号(“-”),转为long 13.日期加上相应的天数 代码如下所示: import java.tex
林老师带你学编程
2022/05/06
2.6K0
Java时间工具类(把日期时间转换成xx秒前、xx分钟前、xx小时前...)
import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; public class DateUtils { private static final long ONE_MINUTE = 60; private static final long ONE_HOUR = 3600; private static
用户7999227
2021/09/19
2.3K0
Java.Utils:Date 时间工具类
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/160247.html原文链接:https://javaforall.cn
全栈程序员站长
2022/09/13
3910
java 星期几、得周一、得周日、上周、下周、相差、日期工具类
import org.apache.commons.lang3.StringUtils; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; /** * 日期工具类 * * @author silence * @version 2017/12/24 */ public class DateUtil {
微风-- 轻许--
2022/04/13
1.1K0
JAVA 常用日期工具类:DateUtil的基本常见方法
在我们java开发中,Date日期这个字段会被经常使用,比如获取当前系统的时间,获取上个月,上一年的时间,以及获取两个日期相差的时分秒数,或者对日期类型进行格式化,等等,等等,总之日期的使用多种多样,但万变不离其宗,今天我就整理了部分常见的java对Date的操作方法,供大家使用。
一诺千金
2020/04/30
13.8K0
LocalDateTime、Date时间工具类
参考:Date、LocalTime、LocalDate、LocalDate-时间操作工具类_Hatsune_Miku_的博客-CSDN博客
CBeann
2023/12/25
2330
Java常用工具类之时间转换(注释乱码,全)
package com.wazn.learn.util; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Calendar; import java.util.Date; import java.util.List; /** * ͨ���� * * @author root */ public class DateUt
二十三年蝉
2018/02/28
1.3K0
时间工具类
import java.sql.Timestamp; import java.text.ParseException; import java.text.ParsePosition; import java.text.SimpleDateFormat; import java.util.*; /** * <p>时间工具类</p> * * @author : LiYu * @date : 2020-10-23 15:22 **/ public class TimeUtils { /*
jaychou
2022/12/26
1.3K0
Java日期处理易踩的十个坑
  我们设置了10小时,但运行结果是22点,而不是10点。因为Calendar.HOUR默认是按12小时制处理的,需要使用Calendar.HOUR_OF_DAY,因为它才是按24小时处理的。
不会飞的小鸟
2020/03/29
1.4K0
Java 日期处理类
日期处理类 Date类 当前日期时间 java.util.Date import java.util.Date; public class TestDemo { public static void main(String [] args) { Date date = new Date(); System.out.println(date); } } 运行结果: Sat Jun 29 21:56:04 CST 2019 上述的结果表示的就是当前的日期时间,为国际标准的格式; 当然我们可以使
Mirror王宇阳
2020/11/12
1.1K0
日期处理工具类
package utils; import org.apache.commons.lang.time.DateUtils; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.GregorianCalendar; /** * Created by lightClouds917 * Date 2018/1/9 * Description:dat
IT云清
2019/01/22
5130
Java对Mysql数据库时间格式处理
博主在做一个列表的时候从MongoDB中查出来的数据包含有时间格式,在MongoDB数据库中的存放形式为2017-10-24 05:18:54.000Z,而对于使用Java查询是String接受的值为Tue Oct 24 13:18:54 CST 2017。
青衫染红尘
2021/01/19
4.7K0
java日期工具类
这里我总结了java中日期的处理方法 /** * 按照yyyy-MM-dd HH:mm:ss格式化日期 * 可根据需要定制 * @param date * @return */ public static String format(Date date) { sdf.applyPattern("yyyy-MM-dd HH:mm:ss"); return sdf.format(date); } /** * 给根据日期添加天数 * * @param da
用户5166556
2019/04/16
1.2K0
java对时间的操作,提供给你工具类,直接调用方法就可以操作时间了
-创建 SimpleDateFormat 对象时必须指定转换格式。 -转换格式区分大小写,yyyy 代表年份,MM 代表月份,dd 代表日期,HH 代表 24 进制的小时,hh 代表 12 进制的小时,mm 代表分钟,ss 代表秒。
一写代码就开心
2020/11/20
2.9K0
java对时间的操作,提供给你工具类,直接调用方法就可以操作时间了
Java 相关时间工具类
package com.cavytech.wear2.util; import android.text.TextUtils; import android.text.format.Time; import android.util.Log; import com.cavytech.wear2.entity.BandSleepStepBean; import com.cavytech.wear2.entity.GetSleepBean; import java.text.DateFormat;
先知先觉
2019/01/21
1.5K0
相关推荐
DateUtils 日期工具类
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文