package com.qinghuainvest.tsmarket.util;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale; public class UtilsDate {
public static final String yyyy_MM_dd_HH_mm_ss = "yyyy-MM-dd HH:mm:ss";
public static final String yyyy_MM_dd = "yyyy-MM-dd";
public static final String yyyyMMdd = "yyyyMMdd";
public static final String yyyyMM = "yyyyMM"; /**
* 将字符串日期格式转化成另一种日期格式
* @param strDate:字符日期
* @param dateFormat:字符日期的格式
* @param pformat:需要格式化后的日期格式
* @return
*/
public static String getStringToString(String strDate,String dateFormat,String pformat){
return getDateToString(getStringToDate(dateFormat, strDate), pformat); } /**
* 系统日期转化成字符串
* @param format
* @return
*/
public static String getSystemDateToString(String format) {
return getDateToString(new Date(), format);
}
/**
* 日期转化成str字符串
* @param date
* @param format
* @return
*/
public static String getDateToString(Date date,String format) {
if( date == null )return null;
SimpleDateFormat siFormat = new SimpleDateFormat(format);
try {
return siFormat.format(date);
} catch (Exception e) {
e.printStackTrace();
}
return null;
} /**
* 系统日期的前n日
* @param dateTime:待处理的日期
* @param n:加减天数
* @return
*/
public static String getSystemDateToYesterday(int n,String format){
try {
return getDateToString(new Date(getSystemDateToDate(format).getTime()- n * 24 * 60 * 60 * 1000), format);
} catch (Exception e) {
e.printStackTrace();
}
return null;
} /**
* 系统年份
* @param format
* @return
*/
public static int getYear(String format){
return getYear(format, new Date()); }
/**
* 读取日期中的年份
* @param format
* @param date
* @return
*/
public static int getYear(String format,Date date){
try {
return Integer.parseInt(new SimpleDateFormat(format).format(date));
} catch (Exception e) {
e.printStackTrace();
}
return 0;
} /**
* 读取系统日期
* @param format
* @return
*/
public static Date getSystemDateToDate(String format) {
return getStringToDate(format, new SimpleDateFormat(format).format(new Date()));
} /**
* 字符串日期转化成日期对象Date
* @param format
* @param date
* @param locale
* @return
*/
public static Date getStringToDate(String format,String date,Locale locale) {
try {
return new SimpleDateFormat(format,locale).parse(date);
} catch (ParseException ex) {
ex.printStackTrace();
}
return null;
} /**
* 字符串日期转化成日期对象Date(本地日期对象)
* @param format
* @param date
* @return
*/
public static Date getStringToDate(String format,String date) {
return getStringToDate(format, date, Locale.CHINA);
} /**
* 比较两个日期是否相等
* @param date1
* @param date2
* @return
*/
public static boolean isEquals(Date date1,Date date2){
return isEqualsYYYYMMDD(getDateToString(date1,yyyy_MM_dd_HH_mm_ss), getDateToString(date2,yyyy_MM_dd_HH_mm_ss));
} /**
* 当前日期是否与系统日期相等
* @param date
* @param systemformat
* @return
*/
public static boolean isEqualsYYYYMMDDToday(String date,String systemformat){
return isEqualsYYYYMMDD(date,getSystemDateToString(systemformat));
} /**
* 当前日期是否与系统日期相等
* @param date
* @return
*/
public static boolean isEqualsYYYYMMDDToday(Date date){
return isEqualsYYYYMMDD(date,new Date());
} /**
* 比较两个日期是否相等
* @param date1
* @param date2
* @return
*/
public static boolean isEqualsYYYYMMDD(Date date1,Date date2){
return isEqualsYYYYMMDD(getDateToString(date1,yyyy_MM_dd), getDateToString(date2,yyyy_MM_dd));
} /**
* 比较两个日期字符串是否相等,需要确定两个日期的字符格式
* @param str1
* @param str1Format
* @param str2
* @param str2Format
* @return
*/
public static boolean isEqualsYYYYMMDD(String str1,String str1Format,String str2,String str2Format){
return isEqualsYYYYMMDD(getStringToString(str1, str1Format, yyyy_MM_dd), getStringToString(str2, str2Format, yyyy_MM_dd));
} /**
* 比较两个日期字符串是否相等,需要确定两个日期的字符格式
* @param str1
* @param str2
* @return
*/
public static boolean isEqualsYYYYMMDD(String str1,String str2){
if( str1== null ){
if( str2 == null )return true;
return false;
}
return str1.equals(str2);
} /**
* 比较日期大小
* @param date1
* @param date2
* @return true:date1大于/等于data2;false:date1小于data2
*/
public static boolean isMoreSize(Date date1,Date date2) {
if( date1 == null ) return false;
if(!date1.before(date2))
return true;
return false;
} public static void main(String[] args) { Date date1 = UtilsDate.getStringToDate(UtilsDate.yyyy_MM_dd,"2015-01-29");
Date date2 = UtilsDate.getSystemDateToDate(UtilsDate.yyyy_MM_dd);
if( !UtilsDate.isMoreSize(date1, date2)) {//今天之前的,则移除
System.out.println("data1小于且不等于date2移除");
} System.out.println("比较日期大小:"+getStringToDate(yyyy_MM_dd,"2015-04-29"));
System.out.println("当前系统日期:"+getSystemDateToString(yyyy_MM_dd_HH_mm_ss)); System.out.println("今年"+getYear("yyyy")); System.out.println("系统日期的前一天:"+getSystemDateToYesterday(1, yyyy_MM_dd));
} }

获取上个月:

 Calendar c = Calendar.getInstance();
c.add(Calendar.MONTH, -1);
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM");
String time = format.format(c.getTime());
//得到一个月最后一天日期(31/30/29/28)
int MaxDay=c.getActualMaximum(Calendar.DAY_OF_MONTH);
//按你的要求设置时间
c.set( c.get(Calendar.YEAR), c.get(Calendar.MONTH), MaxDay, 23, 59, 59);
//按格式输出
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String gtime = sdf.format(c.getTime()); //上月最后一天 /**
* 获取本日日期
* @return
*/
public static String getToDay(){
Calendar c = Calendar.getInstance();
String time = getTime(c);
System.out.println(time);
return time;
} /**
* 获取本周一日期
* @return
*/
public static String getWeekA(){
Calendar cal =Calendar.getInstance();
cal.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
// System.out.println(cal.getTime());
String time = getTime(cal)+" 00:00:00";
System.out.println(time);
return time;
} /**
* 获取本周日日期
* @return
*/
public static String getWeekB(){
Calendar cal =Calendar.getInstance();
// System.out.println(cal.getTime());
//这种输出的是上个星期周日的日期,因为老外那边把周日当成第一天
cal.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY);
// System.out.println(cal.getTime()); //增加一个星期,才是我们中国人理解的本周日的日期
cal.add(Calendar.WEEK_OF_YEAR, 1);
// System.out.println(cal.getTime()); //本周日
String time = getTime(cal)+" 23:59:59";
System.out.println(time);
return time;
} /**
* 获取本月日期
* @return
*/
public static String getMonth(){
Calendar c = Calendar.getInstance();
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM");
String time = format.format(c.getTime());
System.out.println(time);
return time;
}

java -日期的更多相关文章

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

    原文地址:http://lavasoft.blog.51cto.com/62575/52975/ 一.Java中的日期概述   日期在Java中是一块非常复杂的内容,对于一个日期在不同的语言国别环境中 ...

  2. java日期操作大全

    摘自(http://www.blogjava.net/i369/articles/83483.html) java日期操作 大全 先来一个:  取得指定月份的第一天与取得指定月份的最后一天  http ...

  3. java日期处理总结

    Java日期时间使用总结   一.Java中的日期概述   日期在Java中是一块非常复杂的内容,对于一个日期在不同的语言国别环境中,日期的国际化,日期和时间之间的转换,日期的加减运算,日期的展示格式 ...

  4. Java日期时间使用总结

    一.Java中的日期概述   日期在Java中是一块非常复杂的内容,对于一个日期在不同的语言国别环境中,日期的国际化,日期和时间之间的转换,日期的加减运算,日期的展示格式都是非常复杂的问题.   在J ...

  5. Java 日期时间

    Java 日期时间 标签 : Java基础 Date java.util.Date对象表示一个精确到毫秒的瞬间; 但由于Date从JDK1.0起就开始存在了,历史悠久,而且功能强大(既包含日期,也包含 ...

  6. Java日期时间使用(转)

    Java日期时间使用总结 转自:http://lavasoft.blog.51cto.com/62575/52975/   一.Java中的日期概述   日期在Java中是一块非常复杂的内容,对于一个 ...

  7. Java日期的格式String类型GMT,GST换算成日期Date种类

    请尊重他人的劳动成果.转载请注明出处:Java日期格式化之将String类型的GMT,GST日期转换成Date类型 http://blog.csdn.net/fengyuzhengfan/articl ...

  8. java日期格式大全 format SimpleDateFormat(转)

    java日期格式大全 format SimpleDateFormat   /**    * 字符串转换为java.util.Date<br>    * 支持格式为 yyyy.MM.dd G ...

  9. Java日期工具类,Java时间工具类,Java时间格式化

    Java日期工具类,Java时间工具类,Java时间格式化 >>>>>>>>>>>>>>>>>&g ...

  10. Java日期格式化方法

    首先获取当前系统时间的方法有两种:第一种可以用currentTimeMillis()方法获取,它其实产生的是一个当前的毫秒数,这个毫秒是自1970年1月1日0时起至现在的毫秒数,类型是long 型,可 ...

随机推荐

  1. PAT 1024. 科学计数法 (20)

    科学计数法是科学家用来表示很大或很小的数字的一种方便的方法,其满足正则表达式[+-][1-9]"."[0-9]+E[+-][0-9]+,即数字的整数部分只有1位,小数部分至少有1位 ...

  2. PAT 1009. 说反话 (20)

    给定一句英语,要求你编写程序,将句中所有单词的顺序颠倒输出. 输入格式:测试输入包含一个测试用例,在一行内给出总长度不超过80的字符串.字符串由若干单词和若干空格组成,其中单词是由英文字母(大小写有区 ...

  3. Java核心技术点之反射

    1. 概述 Java 反射是可以让我们在运行时获取类的方法.属性.父类.接口等类的内部信息的机制.也就是说,反射本质上是一个“反着来”的过程.我们通过new创建一个类的实例时,实际上是由Java虚拟机 ...

  4. 04Spring_bean 后处理器(后处理Bean),BeanPostProcessor ,bean创建时序,动态代理

    这篇文章很重要,讲解的是动态代理,以及bean创建前后的所发生的事情.介绍一个接口:在Spring构造Bean对象过程中,有一个环节对Bean对象进行 后处理操作 (钩子函数) ----- Sprin ...

  5. js profiler

    https://developers.google.com/web/fundamentals/performance/critical-rendering-path/?hl=en https://de ...

  6. 基于ASP.NET MVC的热插拔模块式开发框架(OrchardNoCMS)--BootStrap

    按照几个月之前的计划,也应该写一个使用Bootstrap作为OrchardNoCMS的UI库.之前这段时间都是在学习IOS开发,没顾得上写,也没顾得上维护OrchardNoCMS代码.看看我的活动轨迹 ...

  7. JAVA格物致知基础篇:用JAX-RS和Jersey打造RESTful Service

    随着服务器的处理能力越来越强,业务需求量的不断累积,越来越多的公司开始从单一服务器,单一业务承载变成了多服务器,多业务承载的快速扩展的过程中.传统的方法很难满足和应付这种业务量的增长和部署方式的改变. ...

  8. Burndown chart

    S型的燃尽图 在一次milestone开发过程中,开发者会持续编辑issue列表,每个issue都有自己的生命周期.燃尽图预期这些issues会被线性的消灭掉,所以从第一天直接到最后一天画个直线表示预 ...

  9. python2.1-原理之琐碎技巧

    本系列依据<python学习手册第四版>而写,也算是个学习笔记吧,选择本书的原因在于它不同于第三版,它强调介绍python3.0 ,而会在不同的地方给出2.6版本的区别,:本书侧重介绍原理 ...

  10. PHP 基础笔记

    数据类型 字符串 整数 浮点数 布尔值 数组 对象 NULL 未定义的变量,数据类型为 NULL. PHP 中数组和对象是不同的类型,而 js 中数组即为对象.(ps: es6 已经内置了 class ...