Java获取各种常用时间方法大全一

Java获取各种常用时间方法大全

1. package cc.javaweb.test;
2. Java中文网,Java获取各种时间大全
3.
4. import java.text.DateFormat;
5. import java.text.ParsePosition;
6. import java.text.SimpleDateFormat;
7. import java.util.Calendar;
8. import java.util.Date;
9. import java.util.GregorianCalendar;
10.
11. public class TimeTest {
12. //用来全局控制 上一周,本周,下一周的周数变化
13. private int weeks = 0;
14. private int MaxDate;//一月最大天数
15. private int MaxYear;//一年最大天数
16.
17.
18. /**
19. * @param args
20. */
21. public static void main(String[] args) {
22. TimeTest tt = new TimeTest();
23. System.out.println("获取当天日期:"+tt.getNowTime("yyyy-MM-dd"));
24. System.out.println("获取本周一日期:"+tt.getMondayOFWeek());
25. System.out.println("获取本周日的日期~:"+tt.getCurrentWeekday());
26. System.out.println("获取上周一日期:"+tt.getPreviousWeekday());
27. System.out.println("获取上周日日期:"+tt.getPreviousWeekSunday());
28. System.out.println("获取下周一日期:"+tt.getNextMonday());
29. System.out.println("获取下周日日期:"+tt.getNextSunday());
30. System.out.println("获得相应周的周六的日期:"+tt.getNowTime("yyyy-MM-dd"));
31. System.out.println("获取本月第一天日期:"+tt.getFirstDayOfMonth());
32. System.out.println("获取本月最后一天日期:"+tt.getDefaultDay());
33. System.out.println("获取上月第一天日期:"+tt.getPreviousMonthFirst());
34. System.out.println("获取上月最后一天的日期:"+tt.getPreviousMonthEnd());
35. System.out.println("获取下月第一天日期:"+tt.getNextMonthFirst());
36. System.out.println("获取下月最后一天日期:"+tt.getNextMonthEnd());
37. System.out.println("获取本年的第一天日期:"+tt.getCurrentYearFirst());
38. System.out.println("获取本年最后一天日期:"+tt.getCurrentYearEnd());
39. System.out.println("获取去年的第一天日期:"+tt.getPreviousYearFirst());
40. System.out.println("获取去年的最后一天日期:"+tt.getPreviousYearEnd());
41. System.out.println("获取明年第一天日期:"+tt.getNextYearFirst());
42. System.out.println("获取明年最后一天日期:"+tt.getNextYearEnd());
43. System.out.println("获取本季度第一天到最后一天:"+tt.getThisSeasonTime(11));
44. System.out.println("获取两个日期之间间隔天数2010-12-31~2010-9-14:"+TimeTest.getTwoDay("2010-12-31","2010-9-14"));
45. }
46.
47. /**
48. * 得到二个日期间的间隔天数
49. */
50. public static String getTwoDay(String sj1, String sj2) {
51. SimpleDateFormat myFormatter = new SimpleDateFormat("yyyy-MM-dd");
52. long day = 0;
53. try {
54. java.util.Date date = myFormatter.parse(sj1);
55. java.util.Date mydate = myFormatter.parse(sj2);
56. day = (date.getTime() - mydate.getTime()) / (24 * 60 * 60 * 1000);
57. } catch (Exception e) {
58. return "";
59. }
60. return day + "";
61. }
62.
63. /**
64. * 根据一个日期,返回是星期几的字符串
65. *
66. * @param sdate
67. * @return
68. */
69. public static String getWeek(String sdate) {
70. // 再转换为时间
71. Date date = TimeTest.strToDate(sdate);
72. Calendar c = Calendar.getInstance();
73. c.setTime(date);
74. // int hour=c.get(Calendar.DAY_OF_WEEK);
75. // hour中存的就是星期几了,其范围 1~7
76. // 1=星期日 7=星期六,其他类推
77. return new SimpleDateFormat("EEEE").format(c.getTime());
78. }
79.
80. /**
81. * 将短时间格式字符串转换为时间 yyyy-MM-dd
82. *
83. * @param strDate
84. * @return
85. */
86. public static Date strToDate(String strDate) {
87. SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
88. ParsePosition pos = new ParsePosition(0);
89. Date strtodate = formatter.parse(strDate, pos);
90. return strtodate;
91. }
92.
93. /**
94. * 两个时间之间的天数
95. *
96. * @param date1
97. * @param date2
98. * @return
99. */
100. public static long getDays(String date1, String date2) {
101. if (date1 == null || date1.equals(""))
102. return 0;
103. if (date2 == null || date2.equals(""))
104. return 0;
105. // 转换为标准时间
106. SimpleDateFormat myFormatter = new SimpleDateFormat("yyyy-MM-dd");
107. java.util.Date date = null;
108. java.util.Date mydate = null;
109. try {
110. date = myFormatter.parse(date1);
111. mydate = myFormatter.parse(date2);
112. } catch (Exception e) {
113. }
114. long day = (date.getTime() - mydate.getTime()) / (24 * 60 * 60 * 1000);
115. return day;
116. }
117.
118. // 计算当月最后一天,返回字符串
119. public String getDefaultDay(){
120. String str = "";
121. SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
122.
123. Calendar lastDate = Calendar.getInstance();
124. lastDate.set(Calendar.DATE,1);//设为当前月的1号
125. lastDate.add(Calendar.MONTH,1);//加一个月,变为下月的1号
126. lastDate.add(Calendar.DATE,-1);//减去一天,变为当月最后一天
127.
128. str=sdf.format(lastDate.getTime());
129. return str;
130. }
131.
132. // 上月第一天
133. public String getPreviousMonthFirst(){
134. String str = "";
135. SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
136.
137. Calendar lastDate = Calendar.getInstance();
138. lastDate.set(Calendar.DATE,1);//设为当前月的1号
139. lastDate.add(Calendar.MONTH,-1);//减一个月,变为下月的1号
140. //lastDate.add(Calendar.DATE,-1);//减去一天,变为当月最后一天
141.
142. str=sdf.format(lastDate.getTime());
143. return str;
144. }
145.
146. //获取当月第一天
147. public String getFirstDayOfMonth(){
148. String str = "";
149. SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
150.
151. Calendar lastDate = Calendar.getInstance();
152. lastDate.set(Calendar.DATE,1);//设为当前月的1号
153. str=sdf.format(lastDate.getTime());
154. return str;
155. }
156.
157. // 获得本周星期日的日期
158. public String getCurrentWeekday() {
159. weeks = 0;
160. int mondayPlus = this.getMondayPlus();
161. GregorianCalendar currentDate = new GregorianCalendar();
162. currentDate.add(GregorianCalendar.DATE, mondayPlus+6);
163. Date monday = currentDate.getTime();
164.
165. DateFormat df = DateFormat.getDateInstance();
166. String preMonday = df.format(monday);
167. return preMonday;
168. }
169.
170. //获取当天时间
171. public String getNowTime(String dateformat){
172. Date now = new Date();
173. SimpleDateFormat dateFormat = new SimpleDateFormat(dateformat);//可以方便地修改日期格式
174. String hehe = dateFormat.format(now);
175. return hehe;
176. }
177.
178. // 获得当前日期与本周日相差的天数
179. private int getMondayPlus() {
180. Calendar cd = Calendar.getInstance();
181. // 获得今天是一周的第几天,星期日是第一天,星期二是第二天......
182. int dayOfWeek = cd.get(Calendar.DAY_OF_WEEK)-1; //因为按中国礼拜一作为第一天所以这里减1
183. if (dayOfWeek == 1) {
184. return 0;
185. } else {
186. return 1 - dayOfWeek;
187. }
188. }
189.
190. //获得本周一的日期
191. public String getMondayOFWeek(){
192. weeks = 0;
193. int mondayPlus = this.getMondayPlus();
194. GregorianCalendar currentDate = new GregorianCalendar();
195. currentDate.add(GregorianCalendar.DATE, mondayPlus);
196. Date monday = currentDate.getTime();
197.
198. DateFormat df = DateFormat.getDateInstance();
199. String preMonday = df.format(monday);
200. return preMonday;
201. }
202.
203. //获得相应周的周六的日期
204. public String getSaturday() {
205. int mondayPlus = this.getMondayPlus();
206. GregorianCalendar currentDate = new GregorianCalendar();
207. currentDate.add(GregorianCalendar.DATE, mondayPlus + 7 * weeks + 6);
208. Date monday = currentDate.getTime();
209. DateFormat df = DateFormat.getDateInstance();
210. String preMonday = df.format(monday);
211. return preMonday;
212. }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值