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. AC日记——输出亲朋字符串 openjudge 1.7 05

    05:输出亲朋字符串 总时间限制:  1000ms 内存限制:  65536kB 描述 编写程序,求给定字符串s的亲朋字符串s1. 亲朋字符串s1定义如下:给定字符串s的第一个字符的ASCII值加第二 ...

  2. VS 的编译选项 build下的 platform target -- Any CPU和x86有什么影响?

    VS 的编译选项 build下的platform -- Any CPU和x86有什么影响? 现在的问题是,我的一个assembly用Any CPU编译就不能在64位系统下运行了,但是用x86编译就ok ...

  3. BZOJ 1101: [POI2007]Zap

    1101: [POI2007]Zap Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 2262  Solved: 895[Submit][Status] ...

  4. VS清除打开项目时的TFS版本控制提示

    原文:http://blog.useasp.net/archive/2015/12/15/how-to-permanently-remove-vs-project-TFS-source-version ...

  5. C# Tostring 格式化输出字符串全解

    C 货币 2.5.ToString("C") ¥2.50 D 十进制数 .ToString("D5") E 科学型 .ToString("E" ...

  6. 李学斌:论复杂系统中的应用间协作V3

    说明 本文主要讨论了巨型复杂业务系统的一种构建思路,力图实现决策意志的快速.准确.一致的下传并简化实施成本提供实施效率.通过全业务领域的即时流程编排,实现全网业务IT系统的快速建设与迭代.本文所讲的方 ...

  7. eval的对于验证数学公式的用处

    var a=10,b=20; var s=a+b+((a/b)+(a+(a-b)))+(11)/a; var r=eval(s); console.log(r); 只要不报错,说明公式正确, 报错公式 ...

  8. &12 二叉搜索树

    #1,定义 二叉查找树(Binary Search Tree),(又:二叉搜索树,二叉排序树)它或者是一棵空树,或者是具有下列性质的二叉树: 若它的左子树不空,则左子树上所有结点的值均小于它的根结点的 ...

  9. mac里git项目删除.DS_Store文件

    用mac开发项目,每次提交文件时都生成修改文件的.DS_Store文件,提交时会不会觉得比较烦?别急,下面给出解决方案.我们需要用到.gitignore文件去配置Git目录中需要忽略的文件. .git ...

  10. Android中的Semaphore

    信号量,了解过操作系统的人都知道,信号量是用来做什么的··· 在Android中,已经提供了Semaphore来帮助我们使用~ 那么,在开发中这家伙有什么用呢? 用的地方不多,但是却真的是好用至极! ...