前言:

对于新手程序员的我来说,写业务代码是现在的日常,在此过程中经常需要对日期时间进行处理,我挑了几个较有用的日期处理函数分享给大家。

正文:

1、将某格式的时间字符串转化成毫秒时间戳表示的字符串:

public static String dateTimeStrToMills(String dateTime,String format){

String dateStr = null;

SimpleDateFormat sdf = new SimpleDateFormat(format);

Calendar calendar = Calendar.getInstance();

calendar.clear();

try {

Date d = new Date();

d = sdf.parse(dateTime);

calendar.setTime(d);

dateStr = calendar.getTimeInMillis()+"ms";

} catch (ParseException e) {

e.printStackTrace();

}

return dateStr;

}

测试例:

@Test

public void test1(){

String date = "2018-10-10 08:30:00";

String format = "yyyy-MM-dd HH:mm:ss";

String timeMS = DateTimeUtils.dateTimeStrToMills(date,format);

System.out.println("毫秒时间:" + timeMS);//毫秒时间:1539131400000ms

}

2、获取某个月的天数:

public static int getDayNumOfMonth(int year,int month){

Calendar calendar = Calendar.getInstance();

calendar.clear();

calendar.set(year, month,0);

return calendar.get(Calendar.DAY_OF_MONTH);

}

测试例:

@Test

public void test2(){

int year = 2018;

int month = 10;

int dayNum = DateTimeUtils.getDayNumOfMonth(year,month);

System.out.println("dayNum:" + dayNum);//dayNum:31

}

3、获取某日、月、年前后的日期:

public static String getBeforeOrAfterDateType(int num,String date,String format,int timeType){

SimpleDateFormat sdf = new SimpleDateFormat(format);

String resultDate = "";

Calendar calendar = Calendar.getInstance();

calendar.clear();

try {

Date d = new Date();

d = sdf.parse(date);

calendar.setTime(d);

calendar.add(timeType, num);//一天的结束是第二天的开始

resultDate = sdf.format(calendar.getTime());

} catch (ParseException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

return resultDate;

}

测试例:

@Test

public void test3(){

//获取某个月前面一个月

int num = -1;

String date = "2018-10";

String format = "yyyy-MM";

int timeType = Calendar.MONTH;

String resultDate = DateTimeUtils.getBeforeOrAfterDateType(num,date,format,timeType);

System.out.println("resultDate:" + resultDate);//resultDate:2018-09

//获取某天几天后的日期

num = 3;

date = "2018-10-05";

format = "yyyy-MM-dd";

timeType = Calendar.DAY_OF_MONTH;

resultDate = DateTimeUtils.getBeforeOrAfterDateType(num,date,format,timeType);

System.out.println("resultDate:" + resultDate);//resultDate:2018-10-08

}

4、根据毫秒时间戳获得格式化后的日期:

public static String millisecondToDate(Long millisecond,String dateFormat){

Date date = new Date(millisecond);

GregorianCalendar gc = new GregorianCalendar();

gc.setTime(date);

SimpleDateFormat format = new SimpleDateFormat(dateFormat);

String sb = format.format(gc.getTime());

return sb;

}

测试例:

@Test

public void test4(){

long mill = 1539131400000l;

String format = "yyyy-MM-dd HH:mm:ss";

String date = DateTimeUtils.millisecondToDate(mill,format);

System.out.println("date:" + date);//date:2018-10-10 08:30:00

}

5、获取某月第一天:

public static String getFirstDayOfMonth(int year,int month){

Calendar cal = Calendar.getInstance();

cal.set(Calendar.YEAR, year);

cal.set(Calendar.MONTH, month-1);

int firstDay = cal.getActualMinimum(Calendar.DAY_OF_MONTH);

cal.set(Calendar.DAY_OF_MONTH, firstDay);

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");

String firstDayOfMonth = sdf.format(cal.getTime());

return firstDayOfMonth;

}

测试例:

@Test

public void test5(){

int year = 2018;

int month = 11;

String format = "yyyy-MM-dd";

String date = DateTimeUtils.getFirstDayOfMonth(year,month,format);

System.out.println("date:" + date);//date:2018-11-01

}

6、获取某月最后一天:

public static String getLastDayOfMonth(int year,int month,String format){

Calendar cal = Calendar.getInstance();

cal.clear();

cal.set(Calendar.YEAR, year);

cal.set(Calendar.MONTH, month-1);

int lastDay = 0;

lastDay = cal.getActualMaximum(Calendar.DAY_OF_MONTH);

cal.set(Calendar.DAY_OF_MONTH, lastDay);

SimpleDateFormat sdf = new SimpleDateFormat(format);

String lastDayOfMonth = sdf.format(cal.getTime());

return lastDayOfMonth;

}

测试例:

@Test

public void test6(){

int year = 2018;

int month = 11;

String format = "yyyy-MM-dd";

String date = DateTimeUtils.getLastDayOfMonth(year,month,format);

System.out.println("date:" + date);//date:2018-11-30

}

7、获取起止日期之间的所有字符串(可自定义间隔、格式、日期类型):

public static ListgetDatesBetweenTwoDate(String begin,String end,int num,int timeType,String format){

ListlDates;

lDates = new ArrayList<>();

try {

SimpleDateFormat sdf = new SimpleDateFormat(format);

Date beginDate = sdf.parse(begin);

Date endDate = sdf.parse(end);

lDates.add(sdf.format(beginDate));

Calendar calendar = Calendar.getInstance();

calendar.setTime(beginDate);

boolean bContinue = true;

while(bContinue){

calendar.add(timeType, num);

if(endDate.after(calendar.getTime())){

lDates.add(sdf.format(calendar.getTime()));

}else{

break;

}

}

lDates.add(sdf.format(endDate));

} catch (ParseException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

return lDates;

}

测试例:

@Test

public void test7(){

String startDate = "2018-10-10";

String endDate = "2018-10-15";

String format = "yyyy-MM-dd";

int num = 1;

int timeType = Calendar.DAY_OF_MONTH;

ListtimeList = DateTimeUtils.getDatesBetweenTwoDate(startDate,endDate,num,timeType,format);

System.out.println(timeList.toString());

//[2018-10-10, 2018-10-11, 2018-10-12, 2018-10-13, 2018-10-14, 2018-10-15]

}

java日期函数精确到日,java日期时间函数分享相关推荐

  1. java获取次月1日,java处置年、月、周次以及起至日期大全 (转载)

    当前位置:我的异常网» 编程 » java处置年.月.周次以及起至日期大全 (转载) java处置年.月.周次以及起至日期大全 (转载) www.myexceptions.net  网友分享于:201 ...

  2. Sql 日月年 日期格式转 月日年 日期格式

    原格式: dd-mm月-yy 例:29-6月-06 目标格式: mm dd yy 标准时间格式 Sql 复制字段并转成目标时间格式: update TableName set [NewColName] ...

  3. c++ linux 获取毫秒_Linux下gettimeofday()函数和clock()函数:精确到毫秒级的时间

    使用Linux的gettimeofday函数可以达到获取精确到毫秒级的时间,其中t1=t_start.tv_sec是公元1970年至今的时间(换算为秒),t2=t_start.tv_usec是当 前秒 ...

  4. c语言的时间函数的介绍,c语言中时间函数介绍

    asctime(将时间和日期以字符串格式表示) 相关函数:time,ctime,gmtime,localtime 表头文件:#include 定义函数:char * asctime(const str ...

  5. c语言时间等待函数linux,常用C语言time时间函数

    常见的时间函数有time( ).ctime( ).gmtime( ).localtime( ).mktime( ).asctime( ).difftime( ).gettimeofday( ).set ...

  6. mysql 本周函数_【转】MySQL时间函数的使用:查询本周、下周、本月、下个月份的数据...

    MySQL时间函数的使用:查询本周.上周.本月.上个月份的数据[转] /*今天*/ select * from 表名 where to_days(时间字段) = to_days(now()); /*昨 ...

  7. 作为Java程序员,对日java开发培训

    面试真题以及解析 Web,RESTful API 在微服务中的作用是什么? 微服务架构基于一个概念,其中所有服务应该能够彼此交互以构建业务功能.因此,要实现这一点,每个微服务必须具有接口.这使得 We ...

  8. 使用OpenCV中的filter2D函数精确实现matlab中的imfilter函数(已测)

    转载请注明出处:http://blog.csdn.net/hust_sheng/article/details/79313503 背景 最近复现别人算法的时候,遇到了matlab中的imfilter转 ...

  9. 标准C语言各种时间函数用法,C语言中系统时间函数是怎么用的?

    慕莱坞森 1.C语言中读取系统时间的函数为time(),其函数原型为:#include time_t time( time_t * ) ;time_t就是long,函数返回从1970年1月1日(MFC ...

最新文章

  1. 一个实用技巧,告别手动画图,自动生成数据库 ER 图|原创
  2. LeetCode 542. 01 Matrix--C++解法--动态规划
  3. python【力扣LeetCode算法题库】55-跳跃游戏
  4. [转]Supporting OData Query Options in ASP.NET Web API 2
  5. Java-string字符串
  6. 线程Thread,Runnable
  7. python3 三角函数
  8. knn算法python代码_K-最近邻分类算法(KNN)及python实现
  9. 在 Windows 10 中查找 BitLocker 恢复密钥
  10. python小结教学_Python Str内部功能-个人课堂笔记,课后总结
  11. vector java 复制_Java代码性能优化的 40+ 细节
  12. atitit.报表最佳实践oae 与报表引擎选型
  13. 软件工程导论 实验二 数据库设计
  14. pr怎么导出预设_怎样用Pr导出清晰度高的视频?
  15. 使用itextpdf切割、合并pdf以及合并多个图片成为pdf
  16. Vue 使用 video 标签实现视频播放
  17. 勤于奋:国外LEAD账号申请细节
  18. 通过京东商品ID获取京东优惠券信息,京东优惠券信息接口,京东优惠券API接口,接口说明接入方案
  19. 【C#】无法从命令行或调试器启动服务,必须首先安装Windows服务(使用installutil.exe)
  20. 数据结构与算法 | 希尔排序

热门文章

  1. 你真的懂break和continue吗?这篇文章让你明白
  2. MySQL工具名字_MySQL客户端工具及SQL讲解
  3. R语言对数线性模型loglm函数_R 对数变换 《回归分析与线性统计模型》page103
  4. 发动机压缩比怎么计算公式_怎么判断发动机有积碳,发动机积碳多的症状有哪些...
  5. 中蜂几月份自然分蜂_蜜蜂的种类:北黑蜂,中华蜜蜂,皖南中蜂,贵州纳雍中蜂等等...
  6. Python 进程池 multiprocessing.Pool - Python零基础入门教程
  7. Python 匿名函数 lambda - Python零基础入门教程
  8. BugkuCTF-Reverse题love
  9. 如何占用计算机内存,电脑内存占用太高怎么办 教你电脑内存不够用解决方法...
  10. 计算机网络静态路由大作业 3地互联,计算机网络-静态路由配置