1. package com.qinghuainvest.tsmarket.util;
  2.  
  3. import java.text.ParseException;
  4. import java.text.SimpleDateFormat;
  5. import java.util.Date;
  6. import java.util.Locale;
  7.  
  8. public class UtilsDate {
  9. public static final String yyyy_MM_dd_HH_mm_ss = "yyyy-MM-dd HH:mm:ss";
  10. public static final String yyyy_MM_dd = "yyyy-MM-dd";
  11. public static final String yyyyMMdd = "yyyyMMdd";
  12. public static final String yyyyMM = "yyyyMM";
  13.  
  14. /**
  15. * 将字符串日期格式转化成另一种日期格式
  16. * @param strDate:字符日期
  17. * @param dateFormat:字符日期的格式
  18. * @param pformat:需要格式化后的日期格式
  19. * @return
  20. */
  21. public static String getStringToString(String strDate,String dateFormat,String pformat){
  22. return getDateToString(getStringToDate(dateFormat, strDate), pformat);
  23.  
  24. }
  25.  
  26. /**
  27. * 系统日期转化成字符串
  28. * @param format
  29. * @return
  30. */
  31. public static String getSystemDateToString(String format) {
  32. return getDateToString(new Date(), format);
  33. }
  34. /**
  35. * 日期转化成str字符串
  36. * @param date
  37. * @param format
  38. * @return
  39. */
  40. public static String getDateToString(Date date,String format) {
  41. if( date == null )return null;
  42. SimpleDateFormat siFormat = new SimpleDateFormat(format);
  43. try {
  44. return siFormat.format(date);
  45. } catch (Exception e) {
  46. e.printStackTrace();
  47. }
  48. return null;
  49. }
  50.  
  51. /**
  52. * 系统日期的前n日
  53. * @param dateTime:待处理的日期
  54. * @param n:加减天数
  55. * @return
  56. */
  57. public static String getSystemDateToYesterday(int n,String format){
  58. try {
  59. return getDateToString(new Date(getSystemDateToDate(format).getTime()- n * 24 * 60 * 60 * 1000), format);
  60. } catch (Exception e) {
  61. e.printStackTrace();
  62. }
  63. return null;
  64. }
  65.  
  66. /**
  67. * 系统年份
  68. * @param format
  69. * @return
  70. */
  71. public static int getYear(String format){
  72. return getYear(format, new Date());
  73.  
  74. }
  75. /**
  76. * 读取日期中的年份
  77. * @param format
  78. * @param date
  79. * @return
  80. */
  81. public static int getYear(String format,Date date){
  82. try {
  83. return Integer.parseInt(new SimpleDateFormat(format).format(date));
  84. } catch (Exception e) {
  85. e.printStackTrace();
  86. }
  87. return 0;
  88. }
  89.  
  90. /**
  91. * 读取系统日期
  92. * @param format
  93. * @return
  94. */
  95. public static Date getSystemDateToDate(String format) {
  96. return getStringToDate(format, new SimpleDateFormat(format).format(new Date()));
  97. }
  98.  
  99. /**
  100. * 字符串日期转化成日期对象Date
  101. * @param format
  102. * @param date
  103. * @param locale
  104. * @return
  105. */
  106. public static Date getStringToDate(String format,String date,Locale locale) {
  107. try {
  108. return new SimpleDateFormat(format,locale).parse(date);
  109. } catch (ParseException ex) {
  110. ex.printStackTrace();
  111. }
  112. return null;
  113. }
  114.  
  115. /**
  116. * 字符串日期转化成日期对象Date(本地日期对象)
  117. * @param format
  118. * @param date
  119. * @return
  120. */
  121. public static Date getStringToDate(String format,String date) {
  122. return getStringToDate(format, date, Locale.CHINA);
  123. }
  124.  
  125. /**
  126. * 比较两个日期是否相等
  127. * @param date1
  128. * @param date2
  129. * @return
  130. */
  131. public static boolean isEquals(Date date1,Date date2){
  132. return isEqualsYYYYMMDD(getDateToString(date1,yyyy_MM_dd_HH_mm_ss), getDateToString(date2,yyyy_MM_dd_HH_mm_ss));
  133. }
  134.  
  135. /**
  136. * 当前日期是否与系统日期相等
  137. * @param date
  138. * @param systemformat
  139. * @return
  140. */
  141. public static boolean isEqualsYYYYMMDDToday(String date,String systemformat){
  142. return isEqualsYYYYMMDD(date,getSystemDateToString(systemformat));
  143. }
  144.  
  145. /**
  146. * 当前日期是否与系统日期相等
  147. * @param date
  148. * @return
  149. */
  150. public static boolean isEqualsYYYYMMDDToday(Date date){
  151. return isEqualsYYYYMMDD(date,new Date());
  152. }
  153.  
  154. /**
  155. * 比较两个日期是否相等
  156. * @param date1
  157. * @param date2
  158. * @return
  159. */
  160. public static boolean isEqualsYYYYMMDD(Date date1,Date date2){
  161. return isEqualsYYYYMMDD(getDateToString(date1,yyyy_MM_dd), getDateToString(date2,yyyy_MM_dd));
  162. }
  163.  
  164. /**
  165. * 比较两个日期字符串是否相等,需要确定两个日期的字符格式
  166. * @param str1
  167. * @param str1Format
  168. * @param str2
  169. * @param str2Format
  170. * @return
  171. */
  172. public static boolean isEqualsYYYYMMDD(String str1,String str1Format,String str2,String str2Format){
  173. return isEqualsYYYYMMDD(getStringToString(str1, str1Format, yyyy_MM_dd), getStringToString(str2, str2Format, yyyy_MM_dd));
  174. }
  175.  
  176. /**
  177. * 比较两个日期字符串是否相等,需要确定两个日期的字符格式
  178. * @param str1
  179. * @param str2
  180. * @return
  181. */
  182. public static boolean isEqualsYYYYMMDD(String str1,String str2){
  183. if( str1== null ){
  184. if( str2 == null )return true;
  185. return false;
  186. }
  187. return str1.equals(str2);
  188. }
  189.  
  190. /**
  191. * 比较日期大小
  192. * @param date1
  193. * @param date2
  194. * @return true:date1大于/等于data2;false:date1小于data2
  195. */
  196. public static boolean isMoreSize(Date date1,Date date2) {
  197. if( date1 == null ) return false;
  198. if(!date1.before(date2))
  199. return true;
  200. return false;
  201. }
  202.  
  203. public static void main(String[] args) {
  204.  
  205. Date date1 = UtilsDate.getStringToDate(UtilsDate.yyyy_MM_dd,"2015-01-29");
  206. Date date2 = UtilsDate.getSystemDateToDate(UtilsDate.yyyy_MM_dd);
  207. if( !UtilsDate.isMoreSize(date1, date2)) {//今天之前的,则移除
  208. System.out.println("data1小于且不等于date2移除");
  209. }
  210.  
  211. System.out.println("比较日期大小:"+getStringToDate(yyyy_MM_dd,"2015-04-29"));
  212. System.out.println("当前系统日期:"+getSystemDateToString(yyyy_MM_dd_HH_mm_ss));
  213.  
  214. System.out.println("今年"+getYear("yyyy"));
  215.  
  216. System.out.println("系统日期的前一天:"+getSystemDateToYesterday(1, yyyy_MM_dd));
  217. }
  218.  
  219. }

获取上个月:

  1. Calendar c = Calendar.getInstance();
  2. c.add(Calendar.MONTH, -1);
  3. SimpleDateFormat format = new SimpleDateFormat("yyyy-MM");
  4. String time = format.format(c.getTime());
  1. //得到一个月最后一天日期(31/30/29/28)
  2. int MaxDay=c.getActualMaximum(Calendar.DAY_OF_MONTH);
  3. //按你的要求设置时间
  4. c.set( c.get(Calendar.YEAR), c.get(Calendar.MONTH), MaxDay, 23, 59, 59);
  5. //按格式输出
  6. SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  7. String gtime = sdf.format(c.getTime()); //上月最后一天
  8.  
  9. /**
  10. * 获取本日日期
  11. * @return
  12. */
  13. public static String getToDay(){
  14. Calendar c = Calendar.getInstance();
  15. String time = getTime(c);
  16. System.out.println(time);
  17. return time;
  18. }
  19.  
  20. /**
  21. * 获取本周一日期
  22. * @return
  23. */
  24. public static String getWeekA(){
  25. Calendar cal =Calendar.getInstance();
  26. cal.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
  27. // System.out.println(cal.getTime());
  28. String time = getTime(cal)+" 00:00:00";
  29. System.out.println(time);
  30. return time;
  31. }
  32.  
  33. /**
  34. * 获取本周日日期
  35. * @return
  36. */
  37. public static String getWeekB(){
  38. Calendar cal =Calendar.getInstance();
  39. // System.out.println(cal.getTime());
  40. //这种输出的是上个星期周日的日期,因为老外那边把周日当成第一天
  41. cal.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY);
  42. // System.out.println(cal.getTime());
  43.  
  44. //增加一个星期,才是我们中国人理解的本周日的日期
  45. cal.add(Calendar.WEEK_OF_YEAR, 1);
  46. // System.out.println(cal.getTime()); //本周日
  47. String time = getTime(cal)+" 23:59:59";
  48. System.out.println(time);
  49. return time;
  50. }
  51.  
  52. /**
  53. * 获取本月日期
  54. * @return
  55. */
  56. public static String getMonth(){
  57. Calendar c = Calendar.getInstance();
  58. SimpleDateFormat format = new SimpleDateFormat("yyyy-MM");
  59. String time = format.format(c.getTime());
  60. System.out.println(time);
  61. return time;
  62. }

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. java 22 - 21 多线程之多线程的代码实现方式3

    JDK5新增了一个Executors工厂类来产生线程池,有如下几个方法 A.public static ExecutorService newCachedThreadPool() B.public s ...

  2. vijos1334 NASA的食物计划(二维费用的背包问题)

    背景 NASA(美国航空航天局)因为航天飞机的隔热瓦等其他安 全技术问题一直大伤脑筋,因此在各方压力下终止了航天 飞机的历史,但是此类事情会不会在以后发生,谁也无法 保证,在遇到这类航天问题时,解决方 ...

  3. 使用javascript实现的雪花飞舞的效果

    原作者是在body中不停的插入多个小div雪花来向下慢慢飘,一直飘到body的底部后,将雪花移除,于是,将原来的代码稍加修改,让他只是从屏幕的顶部飘落到屏幕底部(不是body的底部)后,就将雪花移除, ...

  4. RFID基础知识

    BS:BinarySearch. TSA:TimeSlottedAloha. BSA:基本二进制搜索算法. DBSA:动态二进制搜索算法. RBSA:后退式二进制搜索算法. FSA:Frame Slo ...

  5. http协议(九)响应首部字段

    响应首部字段: 服务器向客户端返回响应报文中所使用的字段,用于补充的附加信息.服务器信息.以及对客户端的附加要求等 1.Accept-Ranges 告知客户端服务器能否处理范围请求,以指定获取服务器的 ...

  6. Nginx+keepalived双机热备(主从模式)

    负载均衡技术对于一个网站尤其是大型网站的web服务器集群来说是至关重要的!做好负载均衡架构,可以实现故障转移和高可用环境,避免单点故障,保证网站健康持续运行.关于负载均衡介绍,可以参考:linux负载 ...

  7. HealthKit框架

    HealthKit框架相关资料 链接: HealthKit框架参考 HealthKit开发快速入门教程之HealthKit数据的操作 HealthKit开发快速入门教程之HealthKit框架体系创建 ...

  8. ESXi 6.0 配置

    ESXi 6.0 添加静态路由 首先打开ESXi的SSH服务, 在Configuration -> Security Profile -> Services , start SSH 用管理 ...

  9. PAT 1010. 一元多项式求导 (25)

    设计函数求一元多项式的导数.(注:xn(n为整数)的一阶导数为n*xn-1.) 输入格式:以指数递降方式输入多项式非零项系数和指数(绝对值均为不超过1000的整数).数字间以空格分隔. 输出格式:以与 ...

  10. CSS3 3D骰子

    z zz zz zzzz zzzzz zzzzzz