java日期时间操作

package com.gds.web.util;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

public class DateOpUtil {

	/** 
     * @param args 
     * @throws ParseException  
     */  
    public static void main(String[] args) throws Exception {  
        System.out.println(daysBetween("2015-09-28 10:10:10","2015-10-01 23:00:00"));  
    }
    
    /*
     *日期格式转换 yyyy-MM-dd
     */
    public static String turnDateFormat(String date)throws Exception
    {
    	SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
    	return format.format(format.parse(date));
    }
    
    /*
     * 两日期比较时间
     */
    public static boolean dateEqual(String begin_date,String end_date)throws Exception
    {
    	SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
    	Date d1 = format.parse(begin_date);
        Date d2 = format.parse(end_date);
        if(d1.getTime() == d2.getTime())
        {
        	return true ;
        }
        return false;
    }
	 
    /*
     * 两日期比较时间
     */
    public static boolean dateDef(String now_date,String use_date)throws Exception
    {
    	SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
    	Date now_time = format.parse(now_date);
        Date end_time = format.parse(use_date);
        if(end_time.getTime() >= now_time.getTime())
        {
        	return true ;
        }
        return false;
    }
    
    /**
     * 计算两日期相隔天数 
     *字符串的日期格式的计算 
     */  
    public static int daysBetween(String smdate,String bdate) throws Exception{  
        SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");  
        Calendar cal = Calendar.getInstance();    
        cal.setTime(sdf.parse(smdate));    
        long time1 = cal.getTimeInMillis();                 
        cal.setTime(sdf.parse(bdate));    
        long time2 = cal.getTimeInMillis();         
        long between_days=(time2-time1)/(1000*3600*24);  
            
       return Integer.parseInt(String.valueOf(between_days));   
    }
    
    /** 
     * 获得指定日期的后一天 
     *  
     * @param specifiedDay 
     * @return 
     * @throws Exception 
     */  
    public static String getSpecifiedDayBefore(String specifiedDay,int i) {//可以用new Date().toLocalString()传递参数  
    	 Calendar c = Calendar.getInstance();  
         Date date = null;  
         try {  
             date = new SimpleDateFormat("yy-MM-dd").parse(specifiedDay);  
         } catch (ParseException e) {  
             e.printStackTrace();  
         }  
         c.setTime(date);  
         int day = c.get(Calendar.DATE);  
         c.set(Calendar.DATE, day + i);  
   
         String dayAfter = new SimpleDateFormat("yyyy-MM-dd")  
                 .format(c.getTime());  
         return dayAfter;  
    }
    
    
    /**
     * 判断当前日期是星期几
     * 
     * @param pTime 修要判断的时间
     * @return dayForWeek 判断结果
     * @Exception 发生异常
     */
	 public static int dayForWeek(String pTime) throws Exception {
	  SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
	  Calendar c = Calendar.getInstance();
	  c.setTime(format.parse(pTime));
	  int dayForWeek = 0;
	  if(c.get(Calendar.DAY_OF_WEEK) == 1){
		  dayForWeek = 7;
	  	}else{
	  		dayForWeek = c.get(Calendar.DAY_OF_WEEK) - 1;
	  }
	  	return dayForWeek;
	 }
	 
	 
	 

}
package com.gds.web.util;

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

import org.apache.commons.lang3.StringUtils;

import com.ctc.wstx.util.StringUtil;

/**
 *  @author microe
 *
 * */
public class FixedDate {

	 /** 
     * 获得指定日期的前一天 
     *  
     * @param specifiedDay 
     * @return 
     * @throws Exception 
     */  
    public static String getSpecifiedDayBefore(String specifiedDay,int i) {//可以用new Date().toLocalString()传递参数  
    	 Calendar c = Calendar.getInstance();  
         Date date = null;  
         try {  
             date = new SimpleDateFormat("yy-MM-dd").parse(specifiedDay);  
         } catch (ParseException e) {  
             e.printStackTrace();  
         }  
         c.setTime(date);  
         int day = c.get(Calendar.DATE);  
         c.set(Calendar.DATE, day - i);  
   
         String dayAfter = new SimpleDateFormat("yyyy-MM-dd")  
                 .format(c.getTime());  
         return dayAfter;  
    }

	/*
	 * 获取指定日期,本周的周一日期
	 */
	public static String getMondayOfThisWeek(String fixed_date) throws Exception 
	{

		 DateFormat fmt =new SimpleDateFormat("yyyy-MM-dd");           
		 Date date = fmt.parse(fixed_date);
		 Calendar c = Calendar.getInstance();
		 c.setTime(date);
		 int day_of_week = c.get(Calendar.DAY_OF_WEEK) - 1;
		 if (day_of_week == 0)
			 day_of_week = 7;
		 c.add(Calendar.DATE, -day_of_week + 1);
		 return fmt.format(c.getTime())+ " 00:00:00";
	}

	/*
	 * 获取指定日期,本月的一号日期
	 */
	public static String getDateOfThisMonth(String fixed_date) throws Exception 
	{
		SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd");
		 //获取当前月第一天:
		Date date1 = fmt.parse(fixed_date);
        Calendar c = Calendar.getInstance();  
        c.setTime(date1);
        c.add(Calendar.MONTH, 0);
        c.set(Calendar.DAY_OF_MONTH,1);//设置为1号,当前日期既为本月第一天 
		return fmt.format(c.getTime())+ " 00:00:00";
	}

	 /** 
     * 当前季度的开始时间,即2012-01-1 00:00:00 
     * 
     * @return 
     */ 
    public static String  getCurrentQuarterStartTime(String fixed_date) throws Exception
    {
    	SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd");
		Date date1 = fmt.parse(fixed_date);
        Calendar c = Calendar.getInstance(); 
        c.setTime(date1); 
        int currentMonth = c.get(Calendar.MONTH) + 1; 
        if (currentMonth >= 1 && currentMonth <= 3) 
            c.set(Calendar.MONTH, 0); 
        else if (currentMonth >= 4 && currentMonth <= 6) 
            c.set(Calendar.MONTH, 3); 
        else if (currentMonth >= 7 && currentMonth <= 9) 
            c.set(Calendar.MONTH, 4); 
        else if (currentMonth >= 10 && currentMonth <= 12) 
            c.set(Calendar.MONTH, 9); 
        c.set(Calendar.DATE, 1); 
        return fmt.format(c.getTime()) + " 00:00:00"; 
        
    }

	//获取上半年、下半年开始时间
	public static String getHalfYearStartTime(String fixed_date) throws Exception
	{
		SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd");
		Date date1 = fmt.parse(fixed_date);
        Calendar c = Calendar.getInstance(); 
        c.setTime(date1);
        int currentMonth = c.get(Calendar.MONTH) + 1; 
        String date = null; 
        try { 
            if (currentMonth >= 1 && currentMonth <= 6){ 
                c.set(Calendar.MONTH, 0); 
            }else if (currentMonth >= 7 && currentMonth <= 12){ 
                c.set(Calendar.MONTH, 6); 
            } 
            c.set(Calendar.DATE, 1); 
            date = fmt.format(c.getTime())+ " 00:00:00"; 
        } catch (Exception e) { 
            e.printStackTrace(); 
        } 
        return date; 
    }

	  /** 
     * 当前年的开始时间,即2012-01-01 00:00:00 
     * 
     * @return 
     */ 
    public   static String getCurrentYearStartTime(String fixed_date) throws Exception
    { 
    	SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd");
    	Date date1 = fmt.parse(fixed_date);
        Calendar c = Calendar.getInstance(); 
        c.setTime(date1); 
        c.set(Calendar.MONTH, 0); 
        c.set(Calendar.DATE, 1); 
        return fmt.format(c.getTime())+ " 00:00:00"; 
    } 

    
    
    
	public static void main(String[] args) throws Exception 
	{

		System.out.println( getCurrentQuarterStartTime("2015-09-09") );

	}

}
时间: 2024-10-12 08:17:59

java日期时间操作的相关文章

Java日期时间操作源码示例大全

在研发闲暇时间,将开发过程比较重要的一些代码段做个记录,如下代码内容是关于Java日期时间操作示例大全的代码,应该是对小伙伴们有所用途. 日期类 import java.util.Calendar; public class VeDate { public static Date getNowDate() { Date currentTime = new Date(); SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd H

Java日期时间操作的一些方法

1. 获得Calendar实例: Calendar c = Calendar.getInstance(); 2. 定义日期/时间的格式: SimpleDateFormat sdf =new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 3. 把日期/时间转换成固定格式,使用SimpleDateFormat的format()方法: String datetime = sdf.format(c.getTime()); 4. 把字符串转换成日期/时间,使用

Java日期时间使用总结[转载]

Java日期时间使用总结 一.Java中的日期概述 日期在Java中是一块非常复杂的内容,对于一个日期在不同的语言国别环境中,日期的国际化,日期和时间之间的转换,日期的加减运算,日期的展示格式都是非常复杂的问题. 在Java中,操作日期主要涉及到一下几个类: 1.java.util.Date 类 Date 表示特定的瞬间,精确到毫秒.从 JDK 1.1 开始,应该使用 Calendar 类实现日期和时间字段之间转换,使用 DateFormat 类来格式化和分析日期字符串.Date 中的把日期解释

Java日期时间API系列8-----Jdk8中java.time包中的新的日期时间API类的LocalDate源码分析

目录 0.前言 1.TemporalAccessor源码 2.Temporal源码 3.TemporalAdjuster源码 4.ChronoLocalDate源码 5.LocalDate源码 6.总结 0.前言 通过前面Java日期时间API系列6-----Jdk8中java.time包中的新的日期时间API类中主要的类关系简图如下: 可以看出主要的LocalDate, LocalTime, LocalDateTime, Instant都是实现相同的接口,这里以LocalDate为例分析jav

Java日期时间API系列19-----Jdk8中java.time包中的新的日期时间API类,ZonedDateTime与ZoneId和LocalDateTime的关系,ZonedDateTime格式化和时区转换等。

通过Java日期时间API系列6-----Jdk8中java.time包中的新的日期时间API类中时间范围示意图:可以很清晰的看出ZonedDateTime相当于LocalDateTime+ZoneId. ZonedDateTime是用来处理时区相关的时间,它的各种计算都离不开ZoneId.先看ZoneId. 1. ZoneId 为时区ID,比如Europe/Paris,表示欧洲巴黎时区 1.1 时区相关知识,时区,UTC时间,GMT时间,Unix时间戳 时区 地球自西向东旋转,东边比西边先看到

Java 日期时间 Date类型,long类型,String类型表现形式的转换 (转)

Java 日期时间 Date类型,long类型,String类型表现形式的转换 1.java.util.Date类型转换成long类型java.util.Date dt = new Date();System.out.println(dt.toString());   //java.util.Date的含义long lSysTime1 = dt.getTime() / 1000;   //得到秒数,Date类型的getTime()返回毫秒数 2.由long类型转换成Date类型SimpleDat

140926●日期时间操作、数学函数操作、表单验证

日期时间操作:var d=new Date();var d=new Date(1999,3,5); //时间是:1999-4-5 d.getFullYear();年d.getMonth();月(正常-1)d.getDate();天d.getDay();星期几d.getHours();d.getMinutes();d.getSeconds(); 数学函数操作:Math.ceil();Math.floor();Math.round();Math.random();Math.sqrt(); 表单验证:

JavaScript日期时间操作

js日期操作: var myDate = new Date(); myDate.getYear(); //获取当前年份(2位)myDate.getFullYear(); //获取完整的年份(4位,1970-????)myDate.getMonth(); //获取当前月份(0-11,0代表1月)myDate.getDate(); //获取当前日(1-31)myDate.getDay(); //获取当前星期X(0-6,0代表星期天)myDate.getTime(); //获取当前时间(从1970.1

Java 日期时间处理

Java 日期时间处理 Date java.util.Date对象表示一个精确到毫秒的瞬间; 但由于Date从JDK1.0起就开始存在了,历史悠久,而且功能强大(既包含日期,也包含时间),所以他的大部分构造器/方法都已Deprecated,因此就不再推荐使用(如果贸然使用的话,可能会出现性能/安全方面的问题);下面我仅介绍它还剩下的为数不多的几个方法(这些方法的共同点是Date与毫秒值的转换): 构造器 Date(): 在底层调用System.currentTimeMillis()作为日期参数.