??xml version="1.0" encoding="utf-8" standalone="yes"?>
1.获取当前旉
2.获取当前q_月,日,Ӟ分,U?br />3.获取指定日期的年Q月Q日Q时Q分Q秒
4.获取两个日期的时间差(包括q月日时分秒)
5.字W窜cd转成java.util.datecd
6.指定日期d旉
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
/**
* @descriped a simple class for date
* @author Kohri
* @date 2012/4/22
* @version 1.0
*/
public class SimpleDate {
private static String defaultFormat = "yyyy-MM-dd HH:mm:ss";
private static SimpleDateFormat sf = null ;
private static Calendar cal = Calendar.getInstance();
private static Date date = null;
/**
* get current date time (default 'yyyy-MM-dd HH:mm:ss')
* @return string
*/
public static String getDateNow() {
sf = new SimpleDateFormat(defaultFormat);
String currentTime = "";
currentTime = sf.format(new Date());
return currentTime;
}
/**
* get year (default now)
* @return int
*/
public static int getYear(){
int currentYear = cal.get(Calendar.YEAR);
return currentYear;
}
/**
* get mon (default now)
* @return int
*/
public static int getMonth(){
int currentMonth = cal.get(Calendar.MONTH) + 1;
return currentMonth;
}
/**
* get day of month (default now)
* @return int
*/
public static int getDay(){
int currentDayOfMonth = cal.get(Calendar.DAY_OF_MONTH);
return currentDayOfMonth;
}
/**
* get hours (default now)
* @return int
*/
public static int getHours(){
int currentHours = cal.get(Calendar.HOUR_OF_DAY);
return currentHours;
}
/**
* get minutes (default now)
* @return int
*/
public static int getMinutes(){
int currentMinute = cal.get(Calendar.MINUTE);
return currentMinute;
}
/**
* get seconds (default now)
* @return int
*/
public static int getSeconds(){
int currentSecond = cal.get(Calendar.SECOND);
return currentSecond;
}
/**
* string change to date
* @param strDate
* @param dateFormat
* @return date
*/
public static Date toDate(String strDate, String dateFormat){
if(strDate == null || strDate.length() == 0){
return null;
}
Date date = null;
DateFormat df = new SimpleDateFormat(dateFormat);
try {
date = df.parse(strDate);
} catch (ParseException e) {
e.printStackTrace();
}
return date;
}
/**
* Returns this Calendar's time value in milliseconds
* @param p_date
* @return long
*/
public static long getMillisOfDate(Date date) {
cal.setTime(date);
return cal.getTimeInMillis();
}
/**
* compare two date
* return the greater date
* if equals return null
* @param strStartDate
* @param strEndDate
* @return date
*/
public static Date getGreaterDate(String strStartDate, String strEndDate){
Date date = null;
Date startDate = toDate(strStartDate, "yyyy-MM-dd");
Date endDate = toDate(strEndDate, "yyyy-MM-dd");
long startTime = getMillisOfDate(startDate);
long endTime = getMillisOfDate(endDate);
if((startTime - endTime) > 0){
return startDate;
}else if((endTime - startTime) > 0){
return endDate;
}
return date;
}
/**
* get days between 2 different date
* @param strStartDate less date (yyyy-MM-dd)
* @param strEndDate greater date (yyyy-MM-dd)
* @return long
*/
public static long getDaysOftwoDiffDate(String strStartDate, String strEndDate){
Date startDate = toDate(strStartDate, "yyyy-MM-dd");
Date endDate = toDate(strEndDate, "yyyy-MM-dd");
long startTime = getMillisOfDate(startDate);
long endTime = getMillisOfDate(endDate);
long betweenDays = (long) ((endTime - startTime) / ( 1000 * 60 * 60 * 24 ));
return betweenDays;
}
/**
* get weeks between 2 different date
* @param strStartDate less date (yyyy-MM-dd)
* @param strEndDate greater date (yyyy-MM-dd)
* @return long
*/
public static long getWeeksOfTwoDiffDate(String strStartDate, String strEndDate){
return getDaysOftwoDiffDate(strStartDate, strEndDate) / 7;
}
/**
* get months between 2 different date
* @param strStartDate less date (yyyy-MM-dd)
* @param strEndDate greater date (yyyy-MM-dd)
* @return long
*/
public static long getMonthsOfTwoDiffDate(String strStartDate, String strEndDate){
return getDaysOftwoDiffDate(strStartDate, strEndDate) / 30;
}
/**
* get years between 2 different date
* @param strStartDate less date (yyyy-MM-dd)
* @param strEndDate greater date (yyyy-MM-dd)
* @return long
*/
public static long getYearsOfTwoDiffDate(String strStartDate, String strEndDate){
return getDaysOftwoDiffDate(strStartDate, strEndDate) / 365;
}
/**
* add date
* @param date
* @param count
* @param field Calendar.YEAR(MONTH..)
* @param format DateFormat(yyyy-MM-dd)
* @return string
*/
public static String addDate(Date date,int count,int field,String format){
cal.setTime(date);
int year = getYear();
int month = getMonth() - 1;
int day = getDay();
int hours = getHours();
int minutes = getMinutes();
int seconds = getSeconds();
Calendar calendar = new GregorianCalendar(year, month, day, hours, minutes, seconds);
calendar.add(field,count);
DateFormat df = new SimpleDateFormat(format);
String tmpDate = df.format(calendar.getTime());
if(date == null){
}
/**
* calendar settime
* @param date
*/
private static void setCalTime(Date date){
if(date != null){
cal.setTime(date);
}
}
//setter getter
public static String getDefaultFormat() {
return defaultFormat;
}
public static void setDefaultFormat(String defaultFormat) {
SimpleDate.defaultFormat = defaultFormat;
}
public static Date getDate() {
return date;
}
public static void setDate(Date date) {
SimpleDate.date = date;
setCalTime(date);
}
}
]]>
-------------------------------------------------------------------------------------------------------------------------------------------------------------
java日期处理相关c:
比较常用的是java.util.dateQ将java.util.Date转ؓjava.sql.Date的时候,日期时分U会被去掉,失去_ֺ。而且如果现在dapi看看发觉这两个cd多方法已l过Ӟ几近沦ؓ废物?/p>
Timestamp能和java.util.date无损转换Q但是在一些预定义sql中会常常出问题?/p>
Q以上出?nbsp;click meQ?/p>
--------------------------------------------------------------------------------------------------------------------------------------------------------------
Joda Time | Date4j |
---|---|
拥有的类的数? 140+ | 拥有的类的数?a style="color: #0b59b2; ">< 10 |
包含可变和不可变c?/td> | 仅包含不可变c?/td> |
速度和功?/td> | 单和有效 |
支持格里高里历(GregorianQ?U普特语日历QCopticQ?伊斯兰教历(IslamicQ、佛历(BuddhistQ等{?/td> | 只提供对格里高里历的支持 |
可以完全取代JDK日期c?/td> | 和JDK日期c配合?/td> |
_到毫U操作 | 支持到纳U(十亿分之一U)U操?/strong> |
修复了天“溢出”的问?/td> | ?#8220;溢出”的问题可配置 |
针对的是通常意义的日期维?/td> | 适用于通过数据库来l护的日?/td> |
采用Apache 2.0授权许可 | 采用BSD授权许可 |
虽然乍一看Date4j只具备了Joda中一部分的特性,但它有两个主要的特点是Joda所不具备的?/p>
首先QDate4j的开发?a target="_blank" style="color: #0b59b2; ">宣称cd不应莫名其妙地将日期截断。Joda只支持毫U的精度而且在将?a target="_blank" style="color: #0b59b2; ">可能也不会改?/a>。一些数据库也已l有了更好的解决Ҏ。比如流行的PostgreSQL数据库对旉戳精度就已经支持?a target="_blank" style="color: #0b59b2; ">微秒U?/a>Q百万分之一U)。Date4j可在处理日期时对_ֺ毫无损伤?/p>
W二个特征是日期“溢出”的问题,例如向某个日期增加一D|间后Q日期落在下月的情况。最单的例子是??1日增加一个月的计:
DateTime dt = new DateTime("2011-03-31");
DateTime result = dt.plusMonths(1); (最新版本此Ҏ应该已经被删除,只有plus(...)与plusDay())
System.out.println(result.toString());
当用Joda TimeӞ会输??0日,但这也许q不是你惌的结果?/p>
鉴于q种不确定性,Date4j为您提供?a target="_blank" style="color: #0b59b2; ">4U选择Q?/p>
1. | W一?/td> |
2. | 最后一天(与Joda Time相同Q?/td> |
3. | 日期g |
4. | 抛出异常 |
scp -P 2222 root@www.vpser.net:/root/lnmp0.4.tar.gz /home/lnmp0.4.tar.gz
上端口大写P 为参敎ͼ2222 表示更改SSH端口后的端口Q如果没有更改SSH端口可以不用d该参数? root@www.vpser.net 表示使用root用户dq程服务器www.vpser.netQ?/root/lnmp0.4.tar.gz 表示q程服务器上的文Ӟ最后面?home/lnmp0.4.tar.gz表示保存在本C的\径和文g名?/p>
scp -P 2222 -r root@www.vpser.net:/root/lnmp0.4/ /home/lnmp0.4/
上端口大写P 为参敎ͼ2222 表示更改SSH端口后的端口Q如果没有更改SSH端口可以不用d该参数?r 参数表示递归复制Q即复制该目录下面的文g和目录)Qroot@www.vpser.net 表示使用root用户dq程服务器www.vpser.netQ?/root/lnmp0.4/ 表示q程服务器上的目录,最后面?home/lnmp0.4/表示保存在本C的\径?/p>
scp -P 2222 /home/lnmp0.4.tar.gz root@www.vpser.net:/root/lnmp0.4.tar.gz
上端口大写P 为参敎ͼ2222 表示更改SSH端口后的端口Q如果没有更改SSH端口可以不用d该参数? /home/lnmp0.4.tar.gz表示本地上准备上传文件的路径和文件名。root@www.vpser.net 表示使用root用户dq程服务器www.vpser.netQ?/root/lnmp0.4.tar.gz 表示保存在远E服务器上目录和文g名?/p>
scp -P 2222 -r /home/lnmp0.4/ root@www.vpser.net:/root/lnmp0.4/
?端口大写P 为参敎ͼ2222 表示更改SSH端口后的端口Q如果没有更改SSH端口可以不用d该参数?r 参数表示递归复制Q即复制该目录下面的文g和目录)Q?home/lnmp0.4/表示准备要上传的目录Qroot@www.vpser.net 表示使用root用户dq程服务器www.vpser.netQ?/root/lnmp0.4/ 表示保存在远E服务器上的目录位置?/p>
-v 和大多数 linux 命o中的 -v 意思一?, 用来昄q度 . 可以用来查看q接 , 认证 , 或是配置错误 .
-C 使能压羃选项 .
-4 使用 IPV4 地址 .
-6 使用 IPV6 地址 .