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. Unity自动构建

    Jenkins/Hudson Jenkins的前身是Hudson(Sun开发),2010年从Hudson分支出来.由于Sun被Oracle收购,Oracle声称拥有Hudson的商标所有权,Hudso ...

  2. HTML 学习笔记 CSS3 (文本效果)

    text-shadow 语法 text-shadow : none | <length> none | [<shadow>, ] * <shadow> 或none ...

  3. django复习笔记2:models

    关于models,主要想说的是django shell以及生成测试数据的脚本这两部分. 一个models中的类相当于数据库的一张表,先看一个设置了外键的models. from django.db i ...

  4. jquery无缝间歇向上滚动(间断滚动)

    jquery无缝间歇向上滚动 JS部份 $(function(){ var $this = $(".renav"); var scrollTimer; $this.hover(fu ...

  5. 64位MicrosoftOfficeWord加载EndnoteX7

    来源:http://jingyan.baidu.com/article/fcb5aff7a08036edaa4a71d0.html Win10 64bit 安装 Office2016 64bit 加载 ...

  6. [转]git fetch 的简单用法:更新远程代码到本地仓库

    [原文地址]:http://my.eoe.cn/com360/archive/3533.html Git中从远程的分支获取最新的版本到本地方式如下,如何更新下载到代码到本地,请参阅ice的博客基于Gi ...

  7. Handler 消息传递机制

    1,Handler 的概念Handler 是用来干什么的?1)执行计划任务,可以在预定的时间执行某些任务,可以模拟定时器 2)线程间通信.在Android的应用启动时,会创建一个主线程,主线程会创建一 ...

  8. codevs 3165 爱改名的小融2

    3149 爱改名的小融 2 http://codevs.cn/problem/3149/ 题目描述 Description Wikioi上有个人叫小融,他喜欢改名.现在他的要求变了,只要是英文字母就是 ...

  9. youtube下载

    http://jingyan.baidu.com/article/39810a23d2deb2b637fda66c.html

  10. JavaScript中sort方法的一个坑(leetcode 179. Largest Number)

    在做 Largest Number 这道题之前,我对 sort 方法的用法是非常自信的.我很清楚不传比较因子的排序会根据元素字典序(字符串的UNICODE码位点)来排,如果要根据大小排序,需要传入一个 ...