Java中日期处理的一些方法

本文主要是说一些java中关于日期的方法。

package com.wnb.java;

import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.TimeZone;

public class Example {
	
	public static void main(String[] args) {

		String DateStr1 = "2011-10-1 10:20:16";
		String DateStr2 = "2011-10-07 15:50:35";
		DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		try {
		//日期大小的比较
		Date dateTime1 = dateFormat.parse(DateStr1);
		Date dateTime2 = dateFormat.parse(DateStr2);
		boolean i = dateTime1.compareTo(dateTime2) < 0; 
		System.out.println(i);
		} catch (ParseException e) {
			e.printStackTrace();
		}
		
		//取得某月的天数
		Calendar cal = Calendar.getInstance();   
		cal.set(Calendar.YEAR,2016);   
		cal.set(Calendar.MONTH,10);//十一月
		int maxDate = cal.getActualMaximum(Calendar.DATE);
		System.out.println(maxDate);
		
		//日期往前挪一天
		Date date = new Date();//取时间 
	    	Calendar calendar = new GregorianCalendar(); 
	    	calendar.setTime(date); 
	   	calendar.add(calendar.DATE,1);//把日期往后增加一天.整数往后推,负数往前移动 
	    	date = calendar.getTime();   //这个时间就是日期往后推一天的结果 
	   	System.out.println(dateFormat.format(date));
	     
	    try{
	    	//获取日期的年月日等
		cal.setTime(dateFormat.parse(DateStr1));
		int year = cal.get(Calendar.YEAR);//获取年份 
		int month=cal.get(Calendar.MONTH);//获取月份 
		int day=cal.get(Calendar.DATE);//获取日 
		int hour=cal.get(Calendar.HOUR);//小时 
		int minute=cal.get(Calendar.MINUTE);//分    
		int second=cal.get(Calendar.SECOND);//秒 
		int WeekOfYear = cal.get(Calendar.DAY_OF_WEEK);//一周的第几天
		System.out.println("时间是:公元"+year+"年"+month+"月"+day+"日  "+hour+"时"+minute+"分"+second+"秒  星期"+WeekOfYear); 
		} catch (ParseException e) {
			e.printStackTrace();
		}
	}
	
	/**
     * 函数功能描述:UTC时间转本地时间格式
     * @param utcTime UTC时间
     * @param utcTimePatten UTC时间格式
     * @param localTimePatten   本地时间格式
     * @return 本地时间格式的时间
     * eg:utc2Local("2017-06-14 09:37:50.788", "yyyy-MM-dd HH:mm:ss.SSS", "yyyy-MM-dd HH:mm:ss")
     */
    public static String utc2Local(String utcTime, String utcTimePatten, String localTimePatten) {
        SimpleDateFormat utcFormater = new SimpleDateFormat(utcTimePatten);
        utcFormater.setTimeZone(TimeZone.getTimeZone("UTC"));//时区定义并进行时间获取
        Date gpsUTCDate = null;
        try {
            gpsUTCDate = utcFormater.parse(utcTime);
        } catch (ParseException e) {
            e.printStackTrace();
            return utcTime;
        }
        SimpleDateFormat localFormater = new SimpleDateFormat(localTimePatten);
        localFormater.setTimeZone(TimeZone.getDefault());
        String localTime = localFormater.format(gpsUTCDate.getTime());
        return localTime;
    }
    /**
     * 函数功能描述:时间格式前后移多少秒
     * @param strDate 时间
     * @param duration 秒数
     * eg:test("2018-02-11 12:15:15", 100);
     */
    public static void test(String strDate, int duration){
        //生成一个为DateFormat对象,其格式与输入串格式对应
        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
        try {
            //将输入串转成Date对象。仔细研究下SimpleDateFormat,有没有不用去掉十分之一秒,
            Date date = format.parse(strDate);
            //转成Calendar对象,便于进行加减操作
            Calendar calendar = Calendar.getInstance();
            calendar.clear();
            calendar.setTime(date);
            //这个方法很灵活,在哪个字段上操作,增减多少,都很方便
            calendar.add(Calendar.SECOND, duration);
            //用DateFormat对象将Calendar对象格式化
            String outBefore = format.format(calendar.getTime());
            System.out.println(outBefore);  
        } catch (ParseException e) {
            e.printStackTrace();
        }
    }
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值