Java实现的日期处理类完整实例
作者:夏日娃 发布时间:2023-12-08 00:16:10
标签:Java,日期
本文实例讲述了Java实现的日期处理类。分享给大家供大家参考,具体如下:
开发中常常要使用日期,先小结如下,以备后用。
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
public class FormatTime {
private final static SimpleDateFormat sdf=new SimpleDateFormat("yyyyMMdd");
private final static SimpleDateFormat sdfymdhm = new SimpleDateFormat("yyyyMMddHHmmss");
private final static SimpleDateFormat sdfymdhms = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
/**
*
* @Title: getCurrentDay
* @Description: TODO 获取当天时间(20161109)
* @return
*/
public static String getCurrentDay(){
return sdf.format(new Date());
}
/**
*
* @Title: fTime2
* @Description: TODO 获取time这个日期以前dayAgo天的日期
* @return
*/
public static String fTime(String time,int dayAgo){
Date date = null;
try {
date = sdf.parse(time);
} catch (ParseException e) {
throw new RuntimeException(e);
}
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
if(dayAgo>0){
calendar.add(Calendar.DAY_OF_MONTH, -dayAgo);//前15天数据
date = calendar.getTime();
calendar.setTime(date);
}
int year=calendar.get(Calendar.YEAR);
int month=calendar.get(Calendar.MONTH) + 1;
int day = calendar.get(Calendar.DAY_OF_MONTH);
String mon="";
String d="";
if(month<10){
mon="0"+month;
}else{
mon=month+"";
}
if(day<10){
d="0"+day;
}else{
d=""+day;
}
String ret=year+""+mon+""+d;
return ret;
}
/**
*
* @Title: fTime2
* @Description: TODO 获取time这个日期以后dayAfter天的日期
* @return
*/
public static String fTime2(String time,int dayAfter){
Date date = null;
try {
date = sdf.parse(time);
} catch (ParseException e) {
throw new RuntimeException(e);
}
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
if(dayAfter>0){
calendar.add(Calendar.DAY_OF_MONTH, +dayAfter);//后15天数据
date = calendar.getTime();
calendar.setTime(date);
}
int year=calendar.get(Calendar.YEAR);
int month=calendar.get(Calendar.MONTH) + 1;
int day = calendar.get(Calendar.DAY_OF_MONTH);
String mon="";
String d="";
if(month<10){
mon="0"+month;
}else{
mon=month+"";
}
if(day<10){
d="0"+day;
}else{
d=""+day;
}
String ret=year+""+mon+""+d;
return ret;
}
/**
*
* @Title: getDefaultTime
* @Description: TODO 获取昨天的日期
* @return
*/
public static String getDefaultTime(){
Calendar calendar = Calendar.getInstance();
calendar.add(Calendar.DAY_OF_MONTH, -1);//前1天
Date date = calendar.getTime();
String time=sdf.format(date);
return time;
}
/**
*
* @Title: getSunday
* @Description: TODO 获取最近一个星期天
* @return
*/
public static String getSunday(){
SimpleDateFormat f = new SimpleDateFormat("yyyyMMdd");
Calendar c = Calendar.getInstance();
c.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY);
return f.format(c.getTime());
}
/**
*
* @Title: getMonthFirstDay
* @Description: TODO 获取本月第一天
* @return
*/
public static String getCurrentMonthFirstDay(){
Calendar cal_1=Calendar.getInstance();//获取当前日期
cal_1.add(Calendar.MONTH, 0);
cal_1.set(Calendar.DAY_OF_MONTH,1);//设置为1号,当前日期既为本月第一天
String firstDay = sdf.format(cal_1.getTime());
return firstDay;
}
/**
*
* @Title: getMonthFirstDay
* @Description: TODO 获取上月第一天
* @return
*/
public static String getPreviousMonthFirstDay(){
//获取当前月第一天:
Calendar c = Calendar.getInstance();
c.add(Calendar.MONTH, -1);
c.set(Calendar.DAY_OF_MONTH,1);//设置为1号,当前日期既为本月第一天
String first = sdf.format(c.getTime());
return first;
}
/**
*
* @Title: getMonthFirstDay
* @Description: TODO 获取上月最后一天
* @return
*/
public static String getPreviousMonthLastDay(){
//获取当前月最后一天
Calendar ca = Calendar.getInstance();
ca.set(Calendar.DAY_OF_MONTH,0);//
String lastDay = sdf.format(ca.getTime());
return lastDay;
}
/**
*
* @Title: getCurrentMonthLastDay
* @Description: TODO 获取指定时间最后一天
* @return
*/
public static String getCurrentMonthLastDay(String time){
Date date =null;
try {
date= sdf.parse(time);
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//获取当前月最后一天
Calendar ca = Calendar.getInstance();
ca.setTime(date);
ca.set(Calendar.DAY_OF_MONTH,
ca.getActualMaximum(Calendar.DAY_OF_MONTH)); //
String lastDay = sdf.format(ca.getTime());
return lastDay;
}
/***
*
* @Title: getCurrentWeekDay
* @Description: TODO 获取本周周一
*/
public static String getCurrentMonday(){
Calendar cal = Calendar.getInstance();
cal.setFirstDayOfWeek(Calendar.MONDAY);//将每周第一天设为星期一,默认是星期天
cal.add(Calendar.DATE, 0);
cal.set(Calendar.DAY_OF_WEEK,Calendar.MONDAY);
String monday = sdf.format(cal.getTime());
return monday;
}
/***
*
* @Title: getPreviousSunday
* @Description: TODO 获取上周周日
*/
public static String getPreviousSunday(){
Calendar cal = Calendar.getInstance();
cal.setFirstDayOfWeek(Calendar.MONDAY);//将每周第一天设为星期一,默认是星期天
cal.add(Calendar.DATE, -1*7);
cal.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY);
String sunday =sdf.format(cal.getTime());
return sunday;
}
/**
*
* @Title: getMiniSencond
* @Description: TODO 将日期转换为毫秒数
* @param str
* @return
*/
public static String getMiniSencond(String str){
long millionSeconds=0;
try {
millionSeconds = sdfymdhm.parse(str).getTime();//毫秒
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return millionSeconds+"";
}
/**
*
* @Title: getDateSencond
* @Description: TODO 将日期转换为毫秒数
* @param str
* @return
*/
public static long getDateSencond(String str){
long millionSeconds=0;
try {
millionSeconds = sdfymdhms.parse(str).getTime();//毫秒
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return millionSeconds;
}
/**
* 计算日期相差天数
* @param str1
* @param str2
* @return
*/
public static int getDistanceOfTwoDate(String str1,String str2){
int result=0;
try{
Date date1 = sdf.parse(str1);
Date date2 =sdf.parse(str2);
Calendar aCalendar = Calendar.getInstance();
aCalendar.setTime(date1);
int day1 = aCalendar.get(Calendar.DAY_OF_YEAR);
aCalendar.setTime(date2);
int day2 = aCalendar.get(Calendar.DAY_OF_YEAR);
result = day1-day2;
}catch(Exception e){
e.printStackTrace();
}
return result;
}
/**
*
* @Title: long2Date
* @Description: TODO long 转日期(年-月-日 时-分-秒)
* @param timestamp
* @return
*/
public static String longToDate(Long msecond){
Date date = new Date(msecond);
return sdfymdhms.format(date);
}
}
PS:这里再为大家推荐几款关于日期与天数计算的在线工具供大家使用:
在线日期/天数计算器:
http://tools.jb51.net/jisuanqi/date_jisuanqi
在线万年历日历:
http://tools.jb51.net/bianmin/wannianli
在线阴历/阳历转换工具:
http://tools.jb51.net/bianmin/yinli2yangli
希望本文所述对大家java程序设计有所帮助。
来源:http://blog.csdn.net/u011625492/article/details/72843471


猜你喜欢
- 好了下面进入正题,我们先看一下实现效果吧:下面来介绍一下代码: 本思路就是:1.先到手机中扫描jpeg和png的图片2.获取导图片
- 一、着色游戏概述近期群里偶然看到一哥们在群里聊不规则图像填充什么四联通、八联通什么的,就本身好学务实的态度去查阅了相关资料。对于这类着色的资
- 在我们实际开发项目中,经常会遇到一些常量的配置,比如url,暂时不会改变的字段参数,这个时候我们最好是不要直接写死在代码里的,因为这样编写的
- 隐藏标题栏基于xml<application android:theme="@style/Them
- 本文实例讲述了Java实现合并两个有序序列算法。分享给大家供大家参考,具体如下:问题描述输入:序列A<a0,a1,a2,...aq,a
- Android系统提供了MediaScanner,MediaProvider,MediaStore等接口,并且提供了一套数据库表格,通过Co
- 构造方法以及参数:PageView可用于Widget的整屏滑动切换,如当代常用的短视频APP中的上下滑动切换的功能,也可用于横向页面的切换,
- 为了重用Fragment UI 组件,在设计中你应该通过定义每一个fragemnt自己的layout和行为,让fragment的自包含和模块
- <FrameLayout &
- 之前代码有一个逻辑,是在初始化时读取某个包下的所有class文件,放入到一个HashMap里。代码运行过程中,通过Key获取到对应class
- 其实没什么技术含量,因为老是想不起来,所以在此文做下记录。通常我们的应用系统中都会有很多短信的发送,或者是信息邮件等的推送,而这些信息却有着
- API Application Programming Interface 应用程序接口接口定义 :指描述可属于任何类或结构的一
- 问题是这样的在开发时,为了节约时间,我选择了mybatis框架来开发,然后又在网上找了一个许多人都推荐的mybatis-plus来作为持久层
- Handler是什么?Handler 是一个可以实现多线程间切换的类,通过 Handler 可以轻松地将一个任务切换到 Handler 所在
- 1、深度总结引用一位网友的话,说的非常好,如果别人问你static的作用;如果你说静态修饰 类的属性 和 类的方法 别人认为你是合格的;如果
- 在网上也没有找到好的解决方案,于是自己研究了下给解决了,分享给大家,希望对大家能有所帮助。一、异常信息这种情况是因为FTP设置的默认目录引发
- Android Java 如何调用自己的 C++ 的类库下面以 Java 调用 C++ 的加法运算函数为例,做简单说明。(使用 Androi
- 一、题目给出二叉搜索树的根节点,该树的节点值各不相同,请你将其转换为累加树(Greater Sum Tree),使每个节点 node 的新值
- 摘要:想必大家做开发的时候都会用到下拉刷新的控件,现在各种第三方的下拉刷新控件不胜枚举。当然最NB的还是XListView。其他也有针对Gr
- 分页问题是一个非常普遍的问题,开发者几乎都会遇到,这里不讨论具体如何分页,说明一下Web方式下分页的原理。首先是查询获得一个结果集(表现为查