关于时间的util类,以后方便查阅
public static int lastDayOfMonth(int year, int month)
{
if (month == 2)
{
if (isLeapYear(year)) {
return 29;
}
return 28;
}
if ((month == 1) || (month == 3) || (month == 5) || (month == 7) || (month == 8) || (month == 10) ||
(month == 12)) {
return 31;
}
return 30;
}
public static boolean isLeapYear(int year)
{
if ((year % 400 == 0) || ((year % 4 == 0) && (year % 100 != 0))) {
return true;
}
return false;
}
public static Date dateInstance(int year, int month, int day)
{
Calendar c = Calendar.getInstance();
c.set(year, month - 1, day, 0, 0, 0);
return c.getTime();
}
public static Date dateInstance(int year, int month, int day, int hour, int min, int sec)
{
Calendar c = Calendar.getInstance();
c.set(year, month - 1, day, hour, min, sec);
return c.getTime();
}
public static Calendar calendarInstance(Date d)
{
Calendar c = Calendar.getInstance();
c.setTime(d);
return c;
}
public static int weekDay(Date d)
{
Calendar c = Calendar.getInstance();
c.setTime(d);
return c.get(7);
}
public static int weekCountOfMonth(int year, int month)
{
int lastDay = lastDayOfMonth(year, month);
Calendar c = Calendar.getInstance();
c.set(year, month - 1, lastDay);
return c.get(4);
}
public static int firstDayOfWeekDay(int year, int month, int argWeekDay)
{
Date d = dateInstance(year, month, 1);
int weekday = weekDay(d);
if (weekday == argWeekDay) {
return 1;
}
if (weekday > argWeekDay) {
return 1 + (7 - (weekday - argWeekDay));
}
return 1 + (argWeekDay - weekday);
}
public static int lastDayOfWeekDay(int year, int month, int argWeekDay)
{
int lastDay = lastDayOfMonth(year, month);
int weekday = weekDay(dateInstance(year, month, lastDay));
if (weekday == argWeekDay) {
return lastDay;
}
if (weekday < argWeekDay) {
return lastDay - (7 - (argWeekDay - weekday));
}
return lastDay - (weekday - argWeekDay);
}
public static int[] lastMonth(Date d)
{
Calendar c = Calendar.getInstance();
c.setTime(d);
int year = c.get(1);
int month = c.get(2) + 1;
if (month == 1) {
return new int[] { year - 1, 12 };
}
return new int[] { year, month - 1 };
}
public static int[] lastMonth(int year, int month)
{
return lastMonth(dateInstance(year, month, 1));
}
public static int[] nextMonth(Date d)
{
Calendar c = Calendar.getInstance();
c.setTime(d);
int year = c.get(1);
int month = c.get(2) + 1;
if (month == 12) {
return new int[] { year + 1, 1 };
}
return new int[] { year, month + 1 };
}
public static int[] nextMonth(int year, int month)
{
return nextMonth(dateInstance(year, month, 1));
}
public static long daysBetween(Date startDate, Date endDate)
{
return (endDate.getTime() - startDate.getTime()) / ONE_DAY_MILLIS;
}
public static Date addDays(Date d, int days)
{
if (d == null) {
return null;
}
return new Date(d.getTime() + days * ONE_DAY_MILLIS);
}
public static Date addMonths(Date d, int months)
{
if (months == 0) {
return d;
}
Calendar c = calendarInstance(d);
int day = c.get(5);
int hour = c.get(11);
int min = c.get(12);
int sec = c.get(13);
Date mydate = d;
if (months > 0) {
for (int kk = 0; kk < months; kk++)
{
int[] tmp = nextMonth(mydate);
mydate = dateInstance(tmp[0], tmp[1], 1);
}
} else {
for (int kk = 0; kk > months; kk--)
{
int[] tmp = lastMonth(mydate);
mydate = dateInstance(tmp[0], tmp[1], 1);
}
}
c = calendarInstance(mydate);
int year = c.get(1);
int month = c.get(2) + 1;
int lastDay = lastDayOfMonth(year, month);
if (day > lastDay) {
day = lastDay;
}
return dateInstance(year, month, day, hour, min, sec);
}
public static String toString(Date d, String format)
{
return new SimpleDateFormat(format).format(d);
}
public static Date toDate(String dateString, String format)
{
try
{
return new SimpleDateFormat(format).parse(dateString);
}
catch (ParseException e)
{
throw new RuntimeException(e);
}
}
public static String getStrYear()
{
return new SimpleDateFormat("yyyy").format(new Date());
}
public static String getStrMonth()
{
return new SimpleDateFormat("MM").format(new Date());
}
public static String getStrDay()
{
return new SimpleDateFormat("dd").format(new Date());
}
public static String getStrYearMonthDay()
{
return new SimpleDateFormat("yyyyMMdd").format(new Date());
}
public static Date getCurDate()
{
return new Date();
}
public static BigDecimal calDays(Date beginDate, Date endDate)
{
if ((beginDate != null) && (endDate != null))
{
BigDecimal days = new BigDecimal(daysBetween(beginDate, endDate));
return days.setScale(6, 4);
}
return null;
}
public static Date truncDate(Date d, String format)
{
Calendar c = calendarInstance(d);
int year = c.get(1);
int mon = c.get(2) + 1;
int day = c.get(5);
int hour = c.get(11);
int min = c.get(12);
int sec = c.get(13);
if (format.equals("yyyy")) {
return dateInstance(year, 1, 1);
}
if (format.equals("MM")) {
return dateInstance(year, mon, 1);
}
if (format.equals("dd")) {
return dateInstance(year, mon, day);
}
if (format.equals("HH")) {
return dateInstance(year, mon, day, hour, 0, 0);
}
if (format.equals("mm")) {
return dateInstance(year, mon, day, hour, min, 0);
}
if (format.equals("ss")) {
return dateInstance(year, mon, day, hour, min, sec);
}
return d;
}
public static Date padToMax(Date d, String format)
{
Calendar c = calendarInstance(d);
int year = c.get(1);
int mon = c.get(2) + 1;
int day = c.get(5);
int hour = c.get(11);
int min = c.get(12);
int sec = c.get(13);
if (format.equals("yyyy")) {
return dateInstance(year, 12, 31, 23, 59, 59);
}
if (format.equals("MM")) {
return dateInstance(year, mon, lastDayOfMonth(year, mon), 23, 59, 59);
}
if (format.equals("dd")) {
return dateInstance(year, mon, day, 23, 59, 59);
}
if (format.equals("HH")) {
return dateInstance(year, mon, day, hour, 59, 59);
}
if (format.equals("mm")) {
return dateInstance(year, mon, day, hour, min, 59);
}
if (format.equals("ss")) {
return dateInstance(year, mon, day, hour, min, sec);
}
return d;
}
public static Timestamp date2Timestamp(Date d)
{
Calendar sysCal = Calendar.getInstance();
sysCal.setTime(d);
return new Timestamp(sysCal.getTimeInMillis());
}
public static String timestamp2String(Timestamp t)
{
String n = t.toString();
int vv = n.indexOf(".");
String bb = n.substring(0, vv);
return bb;
}
public static Date strToDate(String str, String dateformat)
throws ParseException
{
DateFormat format = new SimpleDateFormat(dateformat);
Date date = format.parse(str);
return date;
}
public static String getCurrentSysTimeNow()
{
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date = new Date();
return sdf.format(date);
}
public static String getCurrentSysTimeNow(String s)
{
Date date = new Date();
s = s.length() < 4 ? "yyyy-MM-dd HH:mm:ss" : s;
SimpleDateFormat sdf = new SimpleDateFormat(s);
return sdf.format(date);
}
/**
* 得到当前月份
* @return
*/
public static String getCurrentMonthInfo(){
java.util.Calendar calendar = java.util.Calendar.getInstance();
int monthI = calendar.get(Calendar.MONTH) + 1;
return monthI + "";
}
/**
* 得到当前年份
* @return
*/
public static String getCurrentYearInfo(){
java.util.Calendar calendar = java.util.Calendar.getInstance();
int year = calendar.get(Calendar.YEAR) ;
return year + "";
}
关于时间的util类,以后方便查阅的更多相关文章
- 常用类一一时间处理相关类一一java.util.Tomezone(java.util.Calendar , java.util.Date , java.text.DateFormat)
时间处理相关类 时间是一个一维的东东.所以,我们需要一把刻度尺来区表达和度量时间.在计算机世界,我们把1970 年 1 月 1 日 00:00:00定为基准时间,每个度量单位是毫秒(1秒的千分之一). ...
- [java工具类01]__构建格式化输出日期和时间的工具类
在之前的学习中,我写过一篇关于字符串格式化的,就主要设计到了时间以及日期的各种格式化显示的设置,其主要时通过String类的fomat()方法实现的. 我们可以通过使用不同的转换符来实现格式化显示不同 ...
- Java中Date类型如何向前向后滚动时间,( 附工具类)
Java中的Date类型向前向后滚动时间(附工具类) 废话不多说,先看工具类: import java.text.SimpleDateFormat; import java.util.Calendar ...
- Java日期时间实用工具类
Java日期时间实用工具类 1.Date (java.util.Date) Date(); 以当前时间构造一个Date对象 Date(long); 构造函数 ...
- jdk8 时间日期工具类(转)
package com.changfu.common.util; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import jav ...
- property_自己编写一个读取Property文件的Util类
读取property文件的Util类: 所需jar包: 编写PropertiesUtil类: package com.west.util.property; import java.io.InputS ...
- mysql取出现在的时间戳和时间时间戳转成人类看得懂的时间
mysql取出现在的时间戳和时间时间戳转成人类看得懂的时间,我们在mysql里面他封装了一个内置的时间戳转化的函数,比如我们现在的时间戳是:1458536709 ,"%Y-%m-%d&quo ...
- Problem B: 时间和日期类(III)
Problem B: 时间和日期类(III) Time Limit: 4 Sec Memory Limit: 128 MBSubmit: 2889 Solved: 1732[Submit][Sta ...
- asp.net(C#)实现功能强大的时间日期处理类完整实例
作者:smartsmile2012 字体:[增加 减小] 类型:转载 时间:2016-06-30我要评论 这篇文章主要介绍了asp.net(C#)实现功能强大的时间日期处理类,封装了针对日期与时间的各 ...
随机推荐
- mapreduce job提交流程源码级分析(三)
mapreduce job提交流程源码级分析(二)(原创)这篇文章说到了jobSubmitClient.submitJob(jobId, submitJobDir.toString(), jobCop ...
- 用C#操作vss、msbuild、reactor
一.命令行 凡是支持命令行的工具,都可以通过cmd.exe操作.如下: var p = new Process(); p.StartInfo.FileName = "cmd.exe" ...
- mysql 远程连接
4.现在如果用你电脑上的终端进行MySQL连接时,有可能出现如下错误: MySQL远程连接ERROR 2003 (HY000):Can't connect to MySQL server on'XXX ...
- POJ 3207 2-sat
题目大意: 在圆上顺时针n个点,给定m个连接,可以通过圆内或者圆外相交,问能不能找到一种方式,使这些连接的边都不相交 这里很容易看出的是,这些边只有在圆外或者圆内两种连接方式,而且必须选择其中一种 所 ...
- <转>提高iOS开发效率的方法和工具
介绍 这篇文章主要是介绍一下我在iOS开发中使用到的一些可以提升开发效率的方法和工具. IDE 首先要说的肯定是IDE了,说到IDE,Xcode不能跑,当然你也可能同时在使用AppCode等其他的ID ...
- c# 多线程创建 ---简单
Thread t = new Thread(new ParameterizedThreadStart(UploadCard)); t.IsBackground = false;//后台线程 前台线程 ...
- 发布Restful服务时出现IIS 指定了身份验证方案错误时的解决方案(IIS specified authentication schemes)
发布RESTful服务,当访问.svc文件时出现如下错误时: IIS 指定了身份验证方案“IntegratedWindowsAuthentication, Anonymous”,但绑定仅支持一种身份验 ...
- javascript预解析和作用域
JavaScript解析过程分为两个阶段: 一是:编译阶段.就是JavaScrip预解析阶段,在这个阶段JavaScript解析器将完成把JavaScript脚本代码转换到字节码; 二是:执行阶段.在 ...
- Eclipse中一些快捷键
用到哪里更新到哪里~~~ 1,代码自动对齐 ctrl+shift+f 2,自动填充相关的包 alt+/ 注意选择好需要的包 3,注释某几行代码 选定后ctrl+/ 4,设置自动补全 最简单的修改方 ...
- ORA-01084: OCI 调用中的参数无效
clob,nclob当值为“”空字符串时,就会出现这个错误 OracleParameter op = new OracleParameter("CONTENTclog", Orac ...