专栏首页强仔仔Java基础系列之日期时间处理

Java基础系列之日期时间处理

 Java在处理时间方面提供了很多的API供我们开发使用。例如:Date,Calendar,SimpleDateFormat等等之类的。下面看例子Demo的实现过程:

package myapi.time.demo;
import java.math.BigDecimal;
import java.text.ParsePosition;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
public class JavaTimeApi {
	/** 
     * 返回当前日期时间字符串<br> 
     * 默认格式:yyyy-mm-dd hh:mm:ss 
     *  
     * @return String 返回当前字符串型日期时间 
     */  
    public static String getCurrentTime() {   
        SimpleDateFormat f = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");  
        Date date = new Date();  
        return f.format(date);  
    }  
    
    
    /** 
     * 返回当前日期时间字符串<br> 
     * 默认格式:yyyymmddhhmmss 
     *  
     * @return String 返回当前字符串型日期时间 
     */  
    public static BigDecimal getCurrentTimeNumber() {  
        String returnStr = null;  
        SimpleDateFormat f = new SimpleDateFormat("yyyyMMddHHmmss");  
        Date date = new Date();  
        returnStr = f.format(date);  
        return new BigDecimal(returnStr);  
    }  
  
    
    /** 
     * 返回自定义格式的当前日期时间字符串 
     *  
     * @param format 
     *            格式规则 
     * @return String 返回当前字符串型日期时间 
     */  
    public static String getCurrentTime(String format) {  
        String returnStr = null;  
        SimpleDateFormat f = new SimpleDateFormat(format);  
        Date date = new Date();  
        returnStr = f.format(date);  
        return returnStr;  
    }  
    
    /** 
     * 返回指定格式的字符型日期 
     * @param date 
     * @param formatString 
     * @return 
     */  
    public static String getCurrentTime(Date date, String formatString) {  
        if (date==null) {  
            return null;  
        }  
        SimpleDateFormat simpledateformat = new SimpleDateFormat(formatString);  
        String strDate = simpledateformat.format(date);  
        return strDate;  
    }  
    
    
    /** 
     * 返回当前字符串型日期 
     *  
     * @param format 
     *            格式规则 
     *  
     * @return String 返回的字符串型日期 
     */  
    public static String getCurDate(String format) {  
        Calendar calendar = Calendar.getInstance();  
        SimpleDateFormat simpledateformat = new SimpleDateFormat(format);  
        String strDate = simpledateformat.format(calendar.getTime());  
        return strDate;  
    }  
    
    /** 
     * 将字符串型日期转换为日期型 
     *  
     * @param strDate 
     *            字符串型日期 
     * @param srcDateFormat 
     *            源日期格式 
     * @param dstDateFormat 
     *            目标日期格式 
     * @return Date 返回的util.Date型日期 
     */  
    public static Date getCurrentTime(String strDate, String srcDateFormat, String dstDateFormat) {  
        Date rtDate = null;  
        Date tmpDate = (new SimpleDateFormat(srcDateFormat)).parse(strDate, new ParsePosition(0));  
        String tmpString = null;  
        if (tmpDate != null)  
            tmpString = (new SimpleDateFormat(dstDateFormat)).format(tmpDate);  
        if (tmpString != null)  
            rtDate = (new SimpleDateFormat(dstDateFormat)).parse(tmpString, new ParsePosition(0));  
        return rtDate;  
    }  
    
    /** 
     * 将字符串型日期转换为日期型 
     *  
     * @param strDate 
     *            字符串型日期 
     * @param srcDateFormat 
     *            输出日期格式 
     * @return Date 返回的util.Date型日期 
     */  
    public static Date getDate(String strDate, String dateFormat) {  
        Date tmpDate = (new SimpleDateFormat(dateFormat)).parse(strDate, new ParsePosition(0));  
        return tmpDate;  
    } 
    
    
    /** 
     * 将字符串型日期转换为日期型 
     *  
     * @param strDate 
     *            字符串型日期 
     * @return Date 返回的util.Date型日期 
     */  
    public static Date getDate(String strDate) {  
        Date tmpDate = (new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")).parse(strDate, new ParsePosition(0));  
        return tmpDate;  
    } 
    public static int getLastDayOfMonth(int year,int month){
        Calendar cal = Calendar.getInstance();
        //设置年份
        cal.set(Calendar.YEAR,year);
        //设置月份
        cal.set(Calendar.MONTH, month-1);
        //获取某月最大天数
        int lastDay = cal.getActualMaximum(Calendar.DAY_OF_MONTH);
        //设置日历中月份的最大天数
        cal.set(Calendar.DAY_OF_MONTH, lastDay);
        //格式化日期
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        String lastDayOfMonth = sdf.format(cal.getTime());
        return Integer.valueOf(lastDayOfMonth.substring(lastDayOfMonth.length()-2, lastDayOfMonth.length()));
    }
    
    public static String getLastDayOfMonth(String strDate){
    	Date date=getDate(strDate);
        Calendar cal = Calendar.getInstance();
    	cal.setTime(date);
        int lastDay = cal.getActualMaximum(Calendar.DAY_OF_MONTH);
        cal.set(Calendar.DAY_OF_MONTH, lastDay);
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        String lastDayOfMonth = sdf.format(cal.getTime());
        return lastDayOfMonth;
    }
	public static void main(String[] args) {
//		String currentTime=JavaTimeApi.getCurrentTime();
//		System.out.println("current time is "+currentTime);
//		BigDecimal currentTime=JavaTimeApi.getCurrentTimeAsNumber();
//		System.out.println("current time is "+currentTime);
//		String currentTime=JavaTimeApi.getCurrentTime("yyyy-MM-dd HH:mm:ss");
//		System.out.println(currentTime);
//		String currentTime=JavaTimeApi.Date2String(new Date(),"yyyy-MM-dd HH:mm:ss");
//		System.out.println(currentTime);
//		String currentTime=JavaTimeApi.getCurDate("yyyy-MM-dd HH:mm:ss");
//		System.out.println(currentTime);
//		Date currentTime=JavaTimeApi.stringToDate("2016-07-12 20:39:20","yyyy-MM-dd HH:mm:ss","yyyy-MM-dd");
//		String str=JavaTimeApi.Date2String(currentTime,"yyyy-MM-dd");
//		System.out.println(str);
//		String str=JavaTimeApi.getLastDayOfMonth(2016,7);
//		System.out.println(str);
//		String str=JavaTimeApi.getLastDayOfMonth("2016-7-13 12:12:12");
//		System.out.println("str="+str);
	}
}

上面的Demo基本设计到了平常日期处理的大部分问题,例如String类型的日期转换成Date类型,把Date转换为指定格式的String类型等等之类的。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 今天给大家介绍一下SpringBoot框架中URL参数如何进行Base64加密解密

    今天给大家介绍一下SpringBoot框架中URL参数如何进行Base64加密解密 首先给大家介绍一下Java中的Base64加密,其实Base64不是真正的加...

    林老师带你学编程
  • SpringBoot中实现依赖注入功能

    今天给大家介绍一下SpringBoot中是如何实现依赖注入的功能。 在以往Spring使用中,依赖注入一般都是通过在Spring的配置文件中添加bean方法实现...

    林老师带你学编程
  • 最新Java面试题

    版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.n...

    林老师带你学编程
  • Java&Android获取当前日期、时间、星期几、获取指定格式的日期时间、时间戳工具类包含使用示例

    时间格式内部其余的横线“-”、空格“ ”、冒号“:”、点号“.”等字符仅仅是连接符,方便观看各种单位的时间数字而已,国内,也可以使用形如“yyyy年dd日HHm...

    晨曦_LLW
  • 【 格式化时间(SimpleDateFormat)用法】

    可以通过 new 一个 SimpleDateFormat 对象,通过对象调用parse方法实现

    _DIY
  • OKHttp源码学习--HttpURLConnection HttpClient OKHttp Get and post Demo用法对比

    由以上demo可以看出,OKHttp使用最简单方便,代码书写量少,而且网络请求高效。

    yuanyuan
  • “挑三拣四”地学一学Java I/O

    古人云:“读书破万卷,下笔如有神”。也就是说,只有大量的阅读,写作的时候才能风生水起——写作意味着输出(我的知识传播给他人),而读书意味着输入(从他人的知识中汲...

    沉默王二
  • 乌云漏洞库payload-Burp插件源码分析

    最近使用了下这个工具感觉确实很好用在想着自己能不能进行扩展,所以就对其的源码进行了分析,分享一下

    重生信息安全
  • Mac下golang实现Java加密方式调用

    安装完毕会在home目录下usr/local/go默认的安装目录。然后这个时候可以配置下环境变量

    小诚信驿站
  • Android版-微信APP支付

    服务端源码地址:http://git.oschina.net/javen205/weixin_guide 客户端源码地址:https://github.com...

    Javen

扫码关注云+社区

领取腾讯云代金券