锘??xml version="1.0" encoding="utf-8" standalone="yes"?>
set @objectId=object_id('proc_insert')
if @objectId is not null
begin
drop proc proc_insert
end
go
create proc proc_insert (@tablename varchar(256))
as
begin
set nocount on
declare @sqlstr varchar(4000)
declare @sqlstr1 varchar(4000)
declare @sqlstr2 varchar(4000)
select @sqlstr='select ''insert '+@tablename
select @sqlstr1=''
select @sqlstr2='('
select @sqlstr1='values (''+'
select @sqlstr1=@sqlstr1+col+'+'',''+' ,@sqlstr2=@sqlstr2+name +',' from (select case
when a.xtype =173 then 'case when '+a.name+' is null then ''NULL'' else '+'convert(varchar('+convert(varchar(4),a.length*2+2)+'),'+a.name +')'+' end'
when a.xtype =104 then 'case when '+a.name+' is null then ''NULL'' else '+'convert(varchar(1),'+a.name +')'+' end'
when a.xtype =175 then 'case when '+a.name+' is null then ''NULL'' else '+'''''''''+'+'replace('+a.name+','''''''','''''''''''')' + '+'''''''''+' end'
when a.xtype =61 then 'case when '+a.name+' is null then ''NULL'' else '+'''''''''+'+'convert(varchar(23),'+a.name +',121)'+ '+'''''''''+' end'
when a.xtype =106 then 'case when '+a.name+' is null then ''NULL'' else '+'convert(varchar('+convert(varchar(4),a.xprec+2)+'),'+a.name +')'+' end'
when a.xtype =62 then 'case when '+a.name+' is null then ''NULL'' else '+'convert(varchar(23),'+a.name +',2)'+' end'
when a.xtype =56 then 'case when '+a.name+' is null then ''NULL'' else '+'convert(varchar(11),'+a.name +')'+' end'
when a.xtype =60 then 'case when '+a.name+' is null then ''NULL'' else '+'convert(varchar(22),'+a.name +')'+' end'
when a.xtype =239 then 'case when '+a.name+' is null then ''NULL'' else '+'''''''''+'+'replace('+a.name+','''''''','''''''''''')' + '+'''''''''+' end'
when a.xtype =108 then 'case when '+a.name+' is null then ''NULL'' else '+'convert(varchar('+convert(varchar(4),a.xprec+2)+'),'+a.name +')'+' end'
when a.xtype =231 then 'case when '+a.name+' is null then ''NULL'' else '+'''''''''+'+'replace('+a.name+','''''''','''''''''''')' + '+'''''''''+' end'
when a.xtype =59 then 'case when '+a.name+' is null then ''NULL'' else '+'convert(varchar(23),'+a.name +',2)'+' end'
when a.xtype =58 then 'case when '+a.name+' is null then ''NULL'' else '+'''''''''+'+'convert(varchar(23),'+a.name +',121)'+ '+'''''''''+' end'
when a.xtype =52 then 'case when '+a.name+' is null then ''NULL'' else '+'convert(varchar(12),'+a.name +')'+' end'
when a.xtype =122 then 'case when '+a.name+' is null then ''NULL'' else '+'convert(varchar(22),'+a.name +')'+' end'
when a.xtype =48 then 'case when '+a.name+' is null then ''NULL'' else '+'convert(varchar(6),'+a.name +')'+' end'
when a.xtype =165 then 'case when '+a.name+' is null then ''NULL'' else '+'convert(varchar('+convert(varchar(4),a.length*2+2)+'),'+a.name +')'+' end'
when a.xtype =167 then 'case when '+a.name+' is null then ''NULL'' else '+'''''''''+'+'replace('+a.name+','''''''','''''''''''')' + '+'''''''''+' end'
else '''NULL'''
end as col,a.colid,a.name
from syscolumns a where a.id = object_id(@tablename) and a.xtype <>189 and a.xtype <>34 and a.xtype <>35 and a.xtype <>36
)t order by colid
select @sqlstr=@sqlstr+left(@sqlstr2,len(@sqlstr2)-1)+') '+left(@sqlstr1,len(@sqlstr1)-3)+')'' from '+@tablename
print @sqlstr
exec( @sqlstr)
set nocount off
end
go
鎵ц鏂規(guī)硶錛堝皢tablename鏇挎崲涓虹浉搴旂殑鏁版嵁琛ㄥ悕錛夛細(xì)
exec proc_insert 'tablename'
]]>
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.TimeZone;
import java.util.Vector;
/**
* 涓庢棩鏈熴佹椂闂寸浉鍏崇殑涓浜涘父鐢ㄥ伐鍏鋒柟娉?
* <p>
* 鏃ユ湡(鏃墮棿)鐨勫父鐢ㄦ牸寮?formater)涓昏鏈? <br>
* yyyy-MM-dd HH:mm:ss <br>
*
* @author stephen
* @version 1.0.0
*/
public final class DateTool {
/**
* 瀵規(guī)棩鏈?鏃墮棿)涓殑鏃ヨ繘琛屽姞鍑忚綆? <br>
* 渚嬪瓙: <br>
* 濡傛灉Date綾誨瀷鐨刣涓?2005騫?鏈?0鏃?閭d箞 <br>
* calculateByDate(d,-10)鐨勫間負(fù)2005騫?鏈?0鏃?<br>
* 鑰宑alculateByDate(d,+10)鐨勫間負(fù)2005騫?鏈?0鏃?<br>
*
* @param d
* 鏃ユ湡(鏃墮棿).
* @param amount
* 鍔犲噺璁$畻鐨勫箙搴?+n=鍔爊澶?-n=鍑弉澶?
* @return 璁$畻鍚庣殑鏃ユ湡(鏃墮棿).
*/
public static Date calculateByDate(Date d, int amount) {
return calculate(d, GregorianCalendar.DATE, amount);
}
public static Date calculateByMinute(Date d, int amount) {
return calculate(d, GregorianCalendar.MINUTE, amount);
}
public static Date calculateByYear(Date d, int amount) {
return calculate(d, GregorianCalendar.YEAR, amount);
}
/**
* 瀵規(guī)棩鏈?鏃墮棿)涓敱field鍙傛暟鎸囧畾鐨勬棩鏈熸垚鍛樿繘琛屽姞鍑忚綆? <br>
* 渚嬪瓙: <br>
* 濡傛灉Date綾誨瀷鐨刣涓?2005騫?鏈?0鏃?閭d箞 <br>
* calculate(d,GregorianCalendar.YEAR,-10)鐨勫間負(fù)1995騫?鏈?0鏃?<br>
* 鑰宑alculate(d,GregorianCalendar.YEAR,+10)鐨勫間負(fù)2015騫?鏈?0鏃?<br>
*
* @param d
* 鏃ユ湡(鏃墮棿).
* @param field
* 鏃ユ湡鎴愬憳. <br>
* 鏃ユ湡鎴愬憳?shù)富瑕佹? <br>
* 騫?GregorianCalendar.YEAR <br>
* 鏈?GregorianCalendar.MONTH <br>
* 鏃?GregorianCalendar.DATE <br>
* 鏃?GregorianCalendar.HOUR <br>
* 鍒?GregorianCalendar.MINUTE <br>
* 縐?GregorianCalendar.SECOND <br>
* 姣:GregorianCalendar.MILLISECOND <br>
* @param amount
* 鍔犲噺璁$畻鐨勫箙搴?+n=鍔爊涓敱鍙傛暟field鎸囧畾鐨勬棩鏈熸垚鍛樺?-n=鍑弉涓敱鍙傛暟field浠h〃鐨勬棩鏈熸垚鍛樺?
* @return 璁$畻鍚庣殑鏃ユ湡(鏃墮棿).
*/
private static Date calculate(Date d, int field, int amount) {
if (d == null)
return null;
GregorianCalendar g = new GregorianCalendar();
g.setGregorianChange(d);
g.add(field, amount);
return g.getTime();
}
/**
* 鏃ユ湡(鏃墮棿)杞寲涓哄瓧絎︿覆.
*
* @param formater
* 鏃ユ湡鎴栨椂闂寸殑鏍煎紡.
* @param aDate
* java.util.Date綾葷殑瀹炰緥.
* @return 鏃ユ湡杞寲鍚庣殑瀛楃涓?
*/
public static String date2String(String formater, Date aDate) {
if (formater == null || "".equals(formater))
return null;
if (aDate == null)
return null;
return (new SimpleDateFormat(formater)).format(aDate);
}
/**
* 褰撳墠鏃ユ湡(鏃墮棿)杞寲涓哄瓧絎︿覆.
*
* @param formater
* 鏃ユ湡鎴栨椂闂寸殑鏍煎紡.
* @return 鏃ユ湡杞寲鍚庣殑瀛楃涓?
*/
public static String date2String(String formater) {
return date2String(formater, new Date());
}
/**
* 鑾峰彇褰撳墠鏃ユ湡瀵瑰簲鐨勬槦鏈熸暟.
* <br>1=鏄熸湡澶?2=鏄熸湡涓,3=鏄熸湡浜?4=鏄熸湡涓?5=鏄熸湡鍥?6=鏄熸湡浜?7=鏄熸湡鍏?nbsp;
* @return 褰撳墠鏃ユ湡瀵瑰簲鐨勬槦鏈熸暟
*/
public static int dayOfWeek() {
GregorianCalendar g = new GregorianCalendar();
int ret = g.get(java.util.Calendar.DAY_OF_WEEK);
g = null;
return ret;
}
/**
* 鑾峰彇鎵鏈夌殑鏃跺尯緙栧彿. <br>
* 鎺掑簭瑙勫垯:鎸夌収ASCII瀛楃鐨勬搴忚繘琛屾帓搴? <br>
* 鎺掑簭鏃跺欏拷鐣ュ瓧絎﹀ぇ灝忓啓.
*
* @return 鎵鏈夌殑鏃跺尯緙栧彿(鏃跺尯緙栧彿宸茬粡鎸夌収瀛楃[蹇界暐澶у皬鍐橾鎺掑簭).
*/
public static String[] fecthAllTimeZoneIds() {
Vector v = new Vector();
String[] ids = TimeZone.getAvailableIDs();
for (int i = 0; i < ids.length; i++) {
v.add(ids[i]);
}
java.util.Collections.sort(v, String.CASE_INSENSITIVE_ORDER);
v.copyInto(ids);
v = null;
return ids;
}
/**
* 灝嗘棩鏈熸椂闂村瓧絎︿覆鏍規(guī)嵁杞崲涓烘寚瀹氭椂鍖虹殑鏃ユ湡鏃墮棿.
*
* @param srcFormater
* 寰呰漿鍖栫殑鏃ユ湡鏃墮棿鐨勬牸寮?
* @param srcDateTime
* 寰呰漿鍖栫殑鏃ユ湡鏃墮棿.
* @param dstFormater
* 鐩爣鐨勬棩鏈熸椂闂寸殑鏍煎紡.
* @param dstTimeZoneId
* 鐩爣鐨勬椂鍖虹紪鍙?
*
* @return 杞寲鍚庣殑鏃ユ湡鏃墮棿.
*/
public static String string2Timezone(String srcFormater,
String srcDateTime, String dstFormater, String dstTimeZoneId) {
if (srcFormater == null || "".equals(srcFormater))
return null;
if (srcDateTime == null || "".equals(srcDateTime))
return null;
if (dstFormater == null || "".equals(dstFormater))
return null;
if (dstTimeZoneId == null || "".equals(dstTimeZoneId))
return null;
SimpleDateFormat sdf = new SimpleDateFormat(srcFormater);
try {
int diffTime = getDiffTimeZoneRawOffset(dstTimeZoneId);
Date d = sdf.parse(srcDateTime);
long nowTime = d.getTime();
long newNowTime = nowTime - diffTime;
d = new Date(newNowTime);
return date2String(dstFormater, d);
} catch (ParseException e) {
//Log.output(e.toString(), Log);
return null;
} finally {
sdf = null;
}
}
/**
* 鑾峰彇緋葷粺褰撳墠榛樿鏃跺尯涓嶶TC鐨勬椂闂村樊.(鍗曚綅:姣)
*
* @return 緋葷粺褰撳墠榛樿鏃跺尯涓嶶TC鐨勬椂闂村樊.(鍗曚綅:姣)
*/
private static int getDefaultTimeZoneRawOffset() {
return TimeZone.getDefault().getRawOffset();
}
/**
* 鑾峰彇鎸囧畾鏃跺尯涓嶶TC鐨勬椂闂村樊.(鍗曚綅:姣)
*
* @param timeZoneId
* 鏃跺尯Id
* @return 鎸囧畾鏃跺尯涓嶶TC鐨勬椂闂村樊.(鍗曚綅:姣)
*/
private static int getTimeZoneRawOffset(String timeZoneId) {
return TimeZone.getTimeZone(timeZoneId).getRawOffset();
}
/**
* 鑾峰彇緋葷粺褰撳墠榛樿鏃跺尯涓庢寚瀹氭椂鍖虹殑鏃墮棿宸?(鍗曚綅:姣)
*
* @param timeZoneId
* 鏃跺尯Id
* @return 緋葷粺褰撳墠榛樿鏃跺尯涓庢寚瀹氭椂鍖虹殑鏃墮棿宸?(鍗曚綅:姣)
*/
private static int getDiffTimeZoneRawOffset(String timeZoneId) {
return TimeZone.getDefault().getRawOffset()
- TimeZone.getTimeZone(timeZoneId).getRawOffset();
}
/**
* 灝嗘棩鏈熸椂闂村瓧絎︿覆鏍規(guī)嵁杞崲涓烘寚瀹氭椂鍖虹殑鏃ユ湡鏃墮棿.
*
* @param srcDateTime
* 寰呰漿鍖栫殑鏃ユ湡鏃墮棿.
* @param dstTimeZoneId
* 鐩爣鐨勬椂鍖虹紪鍙?
*
* @return 杞寲鍚庣殑鏃ユ湡鏃墮棿.
* @see #string2Timezone(String, String, String, String)
*/
public static String string2TimezoneDefault(String srcDateTime,
String dstTimeZoneId) {
return string2Timezone("yyyy-MM-dd HH:mm:ss", srcDateTime,
"yyyy-MM-dd HH:mm:ss", dstTimeZoneId);
}
/**
* 嫻嬭瘯鐨刴ain鏂規(guī)硶.
*
* @param argc
*/
public static void main(String[] argc){
String nowDateTime =date2String("yyyy-MM-dd HH:mm:ss");
System.out.println(string2TimezoneDefault(nowDateTime,"UTC"));
// String[] ids = fecthAllTimeZoneIds();
// String nowDateTime =date2String("yyyy-MM-dd HH:mm:ss");
// System.out.println("The time Asia/Shanhai is " + nowDateTime);//紼嬪簭鏈湴榪愯鎵鍦ㄦ椂鍖轟負(fù)[Asia/Shanhai]
// //鏄劇ず涓栫晫姣忎釜鏃跺尯褰撳墠鐨勫疄闄呮椂闂?nbsp;
// for(int i=0;i <ids.length;i++){
// System.out.println(" * " + ids[i] + "=" + string2TimezoneDefault(nowDateTime,ids[i]));
// }
// //鏄劇ず紼嬪簭榪愯鎵鍦ㄥ湴鐨勬椂鍖?nbsp;
// System.out.println("TimeZone.getDefault().getID()=" +TimeZone.getDefault().getID());
}
}
鏈榪戯紝鎵嬪ご鏈変笉灝戦」鐩紝鍏朵腑灝辨湁涓涓被浼煎叕鏂囨祦杞殑欏圭洰錛屽叾涓湁涓涓ā鍧楁槸浠誨姟鐨勫埗瀹氾紝鑰屽湪浠誨姟鐨勭被鍨嬩腑鏈変竴涓驚鐜換鍔★紝灝辨槸鐢ㄦ埛杈撳叆浠誨姟鐨勫紑濮嬫棩鏈熴佺粨鏉熸棩鏈燂紝榪橀渶瑕佽緭鍏ヤ竴涓懆鏈熸暟錛屾瘮濡傛瘡鍛ㄧ殑鏄熸湡鍑犮佹瘡鏈堢殑澶氬皯鍙風(fēng)瓑錛岃繖閲岄潰灝辯壍鎵埌JAVA鏃ユ湡鏃墮棿鐨勮綆楋紝浠庣綉涓婃敹闆嗕簡(jiǎn)涓涓嬶紝鏁寸悊涓嬫潵錛屼緵澶у鍙傝僞_^
Java 璇█鐨凜alendar錛孏regorianCalendar (鏃ュ巻),Date(鏃ユ湡), 鍜孌ateFormat(鏃ユ湡鏍煎紡)緇勬垚浜?jiǎn)Java鏍囧噯鐨勪竴涓熀鏈絾鏄潪甯擱噸瑕佺殑閮ㄥ垎. 鏃ユ湡鏄晢涓氶昏緫璁$畻涓涓叧閿殑閮ㄥ垎. 鎵鏈夌殑寮鍙戣呴兘搴旇鑳藉璁$畻鏈潵鐨勬棩鏈? 瀹氬埗鏃ユ湡鐨勬樉紺烘牸寮? 騫跺皢鏂囨湰鏁版嵁瑙f瀽鎴愭棩鏈熷璞°傚涔?fàn)鏃ユ? 鏃ユ湡鏍煎紡, 鏃ユ湡鐨勮В鏋愬拰鏃ユ湡鐨勮綆椼?/p>
鎴戜滑灝嗚璁轟笅闈㈢殑綾?
1銆?nbsp; 鍏蜂綋綾?鍜屾娊璞$被鐩稿)java.util.Date
2銆?nbsp; 鎶借薄綾籮ava.text.DateFormat 鍜屽畠鐨勪竴涓叿浣撳瓙綾?java.text.SimpleDateFormat
3銆?nbsp; 鎶借薄綾籮ava.util.Calendar 鍜屽畠鐨勪竴涓叿浣撳瓙綾?java.util.GregorianCalendar 鍏蜂綋綾誨彲浠ヨ瀹炰緥鍖? 浣嗘槸鎶借薄綾誨嵈涓嶈兘. 浣犻鍏堝繀欏誨疄鐜版娊璞$被鐨勪竴涓叿浣撳瓙綾?
1. java.util.Date鍙?qiáng)鍏舵牸寮忓?/strong>
Date 綾諱粠Java 寮鍙戝寘(JDK) 1.0 灝卞紑濮嬭繘鍖? 褰撴椂瀹冨彧鍖呭惈浜?jiǎn)鍑犱釜鍙栧緱鎴栬呰緗竴涓棩鏈熸暟鎹殑鍚勪釜閮ㄥ垎鐨勬柟娉? 姣斿璇存湀, 鏃? 鍜屽勾. 榪欎簺鏂規(guī)硶鐜板湪閬埌浜?jiǎn)鎵硅瘎迤堜笖宸簿l忚杞Щ鍒頒簡(jiǎn)Calendar綾婚噷鍘諱簡(jiǎn), 鎴戜滑灝嗗湪鏈枃涓繘涓姝ヨ璁哄畠. 榪欑鏀硅繘鏃ㄥ湪鏇村ソ鐨勫鐞嗘棩鏈熸暟鎹殑鍥介檯鍖栨牸寮? 灝辮薄鍦↗DK 1.1涓竴鏍? Date 綾誨疄闄呬笂鍙槸涓涓寘瑁圭被, 瀹冨寘鍚殑鏄竴涓暱鏁村瀷鏁版嵁, 琛ㄧず鐨勬槸浠嶨MT(鏍兼灄灝兼不鏍囧噯鏃墮棿)1970騫? 1 鏈?1鏃?0:00:00榪欎竴鍒諱箣鍓嶆垨鑰呮槸涔嬪悗緇忓巻鐨勬縐掓暟.
1.1. 鍒涘緩java.util.DateJava
緇熻浠?970騫?鏈?鏃ヨ搗鐨勬縐掔殑鏁伴噺琛ㄧず鏃ユ湡銆備篃灝辨槸璇達(dá)紝渚嬪錛?970騫?鏈?鏃ワ紝鏄湪1鏈?鏃ュ悗鐨?6錛?00錛?00姣銆傚悓鏍風(fēng)殑錛?969騫?2鏈?1鏃ユ槸鍦?970騫?鏈?鏃ュ墠86錛?00錛?00姣銆侸ava鐨凞ate綾諱嬌鐢╨ong綾誨瀷綰綍榪欎簺姣鍊?鍥犱負(fù)long鏄湁絎﹀彿鏁存暟錛屾墍浠ユ棩鏈熷彲浠ュ湪1970騫?鏈?鏃ヤ箣鍓嶏紝涔熷彲浠ュ湪榪欎箣鍚庛侺ong綾誨瀷琛ㄧず鐨勬渶澶ф鍊煎拰鏈澶ц礋鍊煎彲浠ヨ交鏉劇殑琛ㄧず290錛?00錛?00騫寸殑鏃墮棿錛岃繖閫傚悎澶у鏁頒漢鐨勬椂闂磋姹傘傝鎴戜滑鐪嬩竴涓嬌鐢ㄧ郴緇熺殑褰撳墠鏃ユ湡鍜屾椂闂村垱寤轟竴涓棩鏈熷璞″茍榪斿洖涓涓暱鏁存暟鐨勭畝鍗曚緥瀛? 榪欎釜鏃墮棿閫氬父琚О涓篔ava 铏氭嫙鏈?JVM)涓繪満鐜鐨勭郴緇熸椂闂?
import java.util.Date;
public class DateExample1
{
public static void main(String] args)
{
// Get the system date/time Date date = new Date(); // 鎵撳嵃鍑哄叿浣撶殑騫達(dá)紝鏈堬紝鏃ワ紝灝忔椂錛屽垎閽燂紝縐掗挓浠ュ強(qiáng)鏃跺尯
System.out.println(date.getTime());
}
}
鍦ㄦ槦鏈熷叚, 2001騫?鏈?9鏃? 涓嬪崍澶х害鏄?:50鐨勬牱瀛? 涓婇潰鐨勪緥瀛愬湪緋葷粺杈撳嚭璁懼涓婃樉紺虹殑緇撴灉鏄?1001803809710. 鍦ㄨ繖涓緥瀛愪腑,鍊煎緱娉ㄦ剰鐨勬槸鎴戜滑浣跨敤浜?jiǎn)Date 鏋勯犲嚱鏁板垱寤轟竴涓棩鏈熷璞? 榪欎釜鏋勯犲嚱鏁版病鏈夋帴鍙椾換浣曞弬鏁? 鑰岃繖涓瀯閫犲嚱鏁板湪鍐呴儴浣跨敤浜?jiǎn)System.currentTimeMillis() 鏂規(guī)硶鏉ヤ粠緋葷粺鑾峰彇鏃ユ湡.
//1騫村墠鏃ユ湡
java.util.Date myDate=new java.util.Date();
long myTime=(myDate.getTime()/1000)-60*60*24*365;
myDate.setTime(myTime*1000);
String mDate=formatter.format(myDate);//鏄庡ぉ鏃ユ湡
myDate=new java.util.Date();
myTime=(myDate.getTime()/1000)+60*60*24;
myDate.setTime(myTime*1000);
mDate=formatter.format(myDate);
//涓や釜鏃墮棿涔嬮棿鐨勫ぉ鏁?nbsp;
SimpleDateFormat myFormatter = new SimpleDateFormat("yyyy-MM-dd");
java.util.Date date= myFormatter.parse("2003-05-1");
java.util.Date mydate= myFormatter.parse("1899-12-30");
long day=(date.getTime()-mydate.getTime())/(24*60*60*1000);
//鍔犲崐灝忔椂SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
java.util.Date date1 = format.parse("2002-02-28 23:16:00");
long Time=(date1.getTime()/1000)+60*30;
date1.setTime(Time*1000);String mydate1=formatter.format(date1);
//騫存湀鍛ㄦ眰鏃ユ湡
SimpleDateFormat formatter2 = new SimpleDateFormat("yyyy-MM F E");
java.util.Date date2= formatter2.parse("2003-05 5 鏄熸湡浜?);
SimpleDateFormat formatter3 = new SimpleDateFormat("yyyy-MM-dd");
String mydate2=formatter3.format(date2);
//姹傛槸鏄熸湡鍑?/p>
mydate= myFormatter.parse("2001-1-1");
SimpleDateFormat formatter4 = new SimpleDateFormat("E");
String mydate3=formatter4.format(mydate);
1.2. Date鏍煎紡鍖?/strong>
鑳戒互涓縐嶇敤鎴鋒槑鐧界殑鏍煎紡鏉ユ樉紺鴻繖涓棩鏈熷憿? 鍦ㄨ繖閲岀被java.text.SimpleDateFormat 鍜屽畠鐨勬娊璞″熀綾?java.text.DateFormat銆傞偅涔? 鐜板湪鎴戜滑宸茬粡鐭ラ亾浜?jiǎn)濡備綍鑾峰彇浠?970騫?鏈?鏃ュ紑濮嬬粡鍘嗙殑姣鏁頒簡(jiǎn). 鎴戜滑濡備綍鎵峟ormat 灝辨淳寰椾笂鐢ㄥ満浜?
// 鎴戜滑鑳戒笉鑳界敤涓嬮潰鐨勪唬鐮佹瀯浠跺嚭 2001/8/8 8:8
import java.io.*;
import java.util.*;
public class WhatIsDate
{
public static void main(String[] args)
{
Date date = new Date(2001, 8, 8, 8, 8, 8);
System.out.println(date);
}
}
Java 鐨勭紪璇戝櫒绔熺劧鎶ュ涓嬩俊鎭?(Sun JDK1.3, Windows 2000 涓枃涓?
娉ㄦ剰錛?/p>
WhatIsDate.java 浣跨敤鎴栬鐩栦竴涓笉榧撳姳浣跨敤鐨凙PI銆?/p>
娉ㄦ剰錛?/p>
浣跨敤-deprecation閲嶆柊緙栬瘧錛屼互寰楀埌璇︾粏淇℃伅銆傦紒閭d箞 Date 瀵硅薄絀剁珶鏄負(fù)浜?jiǎn)婊…憶_摢涓渶姹傚憿錛熺湅鏉ュ畠涓嶆槸鐢ㄦ潵瀹炵幇鍩轟簬騫?鏈?鏃ュ皬鏃?鍒嗛挓 鐨勬椂闂磋〃榪般傛垜浠煡鐪?Java 鐨勬枃妗o紝鎴戜滑鐪嬪埌鏈?getTime() 鏂規(guī)硶錛屽畠榪斿洖鐨勭珶鐒舵槸涓涓?long 鍊箋傛枃妗h繘涓姝ュ張鍛婅瘔鎴戜滑榪欎釜鍊間唬琛ㄤ簡(jiǎn)褰撳墠緋葷粺鐨勬椂闂寸1970/1/1 0:0 鐨勬縐掑樊錛岃屼笖鏄湪 GMT 鏃跺尯涓?涔熻縐頒負(fù) EPOC)銆傚鏋滄垜浠寚瀹氱殑鏃墮棿鏄湪姝や箣鍓嶇殑錛岄偅瀹冨皢榪斿洖涓涓礋鏁板箋傝繖涓彂鐜拌鎴戜滑瀵?Date 瀵硅薄鏈変簡(jiǎn)涓涓叏鏂扮殑璁よ瘑-Date 瀛樻斁鐨勬槸涓?EPOC 鐨勫亸宸箋傛崲鑰岃█涔嬫垜浠篃鍙氳繃 long 綾誨瀷鏉ヨ〃紺烘椂闂達(dá)紵
瀵逛簡(jiǎn)錛岃繖涓寽鎯蟲(chóng)槸寰楀埌浜?Java 鐨勬敮鎸侊細(xì)
// 絎簩縐嶈幏寰楀綋鍓嶆椂闂寸殑鏂規(guī)硶
long dateInMilliSeconds = System.currentTimeMillis();// 榪欐椂鍊欐墦鍗板嚭鐨勫彧鏄竴涓叉暟瀛楄屽凡
System.out.println(dateInMilliSeconds);
瀵圭▼搴忔墽琛屾晥鐜囨晱鎰熺殑紼嬪簭鍛樺彲浠ュ彂鐜拌繖涓柟娉曞彧鏄敓鎴愪竴涓?Java 鐨勫師濮嬬被鍨?(primitive type) long, 涓嶉渶瑕佸疄渚嬪寲涓涓璞°傚洜姝ゅ鏋滄垜浠鏃墮棿鐨勫鐞嗗彧鏄湪鍐呴儴榪涜鏃訛紝鍙互鐢?long 鏉ヤ唬鏇?Date 瀵硅薄銆傛渶鍏稿瀷鐨勫簲鐢ㄥ氨鏄湪涓孌典唬鐮佸紑濮嬪拰緇撴潫鏃?鍒嗗埆鑾峰緱緋葷粺褰撳墠鐨勬椂闂?鐒跺悗璁$畻鍑轟唬鐮佹墽琛屾墍闇鐨勬椂闂?寰綰?銆?nbsp;
long start = System.currentTimeMillis();
// 浠g爜孌?nbsp;
System.out.println("闇瑕?"+(System.currentTimeMillis()-start)+" 寰");
閭d箞褰撴垜浠鎶婅繖涓?long 鍊煎凡鏇翠負(fù)鍙嬪ソ鐨勮〃鐜板艦寮忔樉紺哄鐞嗙殑鏃跺欙紝鎴戜滑鍙互鐢ㄥ畠鏉ユ瀯閫?Date 瀵硅薄錛欴ate date = new Date(dateInMilliSeconds);System.out.println(date);鎴戜滑鐪嬪埌浜?jiǎn)鍦?Java 涓鏃墮棿鏈涓哄熀鏈殑琛ㄧず錛屾湁閫氳繃瀵笶POC 鐨勫亸宸艱繘琛屽鐞嗐侱ate 瀵硅薄鏄瀹冪殑涓涓璞$殑灝佽銆傛垜浠悓鏃朵篃鐪嬪埌浜?jiǎn)锛屽湪鐜版椂涓栫晫涓垜浠?guī)椂闂寸殑鎻忚堪閫氬父鏄氳繃"鏌愬勾鏌愭湀鏌愭棩鏌愭椂鏌愬垎"鏉ュ畾涔夌殑銆侱ate 鐨勬樉紺?瀹為檯涓婃槸 toString() 鏂規(guī)硶)鎻忚堪浜?jiǎn)杩欎簺淇℃伅锛屼?Java 騫朵笉寤鴻鎴戜滑鐢ㄨ繖縐嶆柟寮忕洿鎺ユ潵鏋勪歡 Date 瀵硅薄銆傚洜姝ゆ垜浠渶瑕佹壘鍑哄摢涓璞″彲浠ュ疄鐜拌繖涓渶姹傘傝繖灝辨槸鎴戜滑涓嬮潰灝辮璁茶堪鐨?Calendar 瀵硅薄鐨勫姛鑳姐傚湪鎴戜滑榪涗竴姝ョ爺絀?Calendar 涔嬪墠錛岃璁頒綇 Date 鍙槸涓涓 long 鍊?鍩轟簬 GMT 鏃跺尯)鐨勫璞″皝瑁呫傚畠鎵琛ㄧ幇鍑烘潵鐨勫勾/鏈?鏃ュ皬鏃?鍒嗛挓鏃跺尯鐨勬椂闂磋〃榪幫紝鍙槸瀹冪殑 toString() 鏂規(guī)硶鎵鎻愪緵鐨勩傚崈涓囦笉瑕佷負(fù)榪欎釜鍋囪薄鎵榪鋒儜銆傚亣濡傛垜浠笇鏈涘畾鍒舵棩鏈熸暟鎹殑鏍煎紡, 姣旀柟鏄熸湡鍏?9鏈?29鏃?2001騫? 涓嬮潰鐨勪緥瀛愬睍紺轟簡(jiǎn)濡備綍瀹屾垚榪欎釜宸ヤ綔:
import java.text.SimpleDateFormat;
import java.util.Date;
public class DateExample2
{
public static void main(String[] args)
{
SimpleDateFormat bartDateFormat = new SimpleDateFormat("EEEE-MMMM-dd-yyyy");
Date date = new Date();
System.out.println(bartDateFormat.format(date));
}
}
鍙閫氳繃鍚慡impleDateFormat 鐨勬瀯閫犲嚱鏁頒紶閫掓牸寮忓瓧絎︿覆"EEE-MMMM-dd-yyyy", 鎴戜滑灝辮兘澶熸寚鏄庤嚜宸辨兂瑕佺殑鏍煎紡. 浣犲簲璇ュ彲浠ョ湅瑙? 鏍煎紡瀛楃涓蹭腑鐨凙SCII 瀛楃鍛婅瘔鏍煎紡鍖栧嚱鏁頒笅闈㈡樉紺烘棩鏈熸暟鎹殑鍝竴涓儴鍒? EEEE鏄槦鏈? MMMM鏄湀, dd鏄棩, yyyy鏄勾. 瀛楃鐨勪釜鏁板喅瀹氫簡(jiǎn)鏃ユ湡鏄浣曟牸寮忓寲鐨?浼犻?EE-MM-dd-yy"浼?xì)鏄窘C?Sat-09-29-01. 璇峰療鐪婼un 鍏徃鐨刉eb 绔欑偣鑾峰彇鏃ユ湡鏍煎紡鍖栭夐」鐨勫畬鏁寸殑鎸囩ず. 1.3. 鏂囨湰鏁版嵁瑙f瀽鎴愭棩鏈熷璞?鍋囪鎴戜滑鏈変竴涓枃鏈瓧絎︿覆鍖呭惈浜?jiǎn)涓涓牸寮忓寲浜?jiǎn)鐨勬棩鏈熷璞? 鑰屾垜浠笇鏈涜В鏋愯繖涓瓧絎︿覆騫朵粠鏂囨湰鏃ユ湡鏁版嵁鍒涘緩涓涓棩鏈熷璞? 鎴戜滑灝嗗啀嬈′互鏍煎紡鍖栧瓧絎︿覆"MM-dd-yyyy" 璋冪敤SimpleDateFormat綾? 浣嗘槸榪欎竴嬈? 鎴戜滑浣跨敤鏍煎紡鍖栬В鏋愯屼笉鏄敓鎴愪竴涓枃鏈棩鏈熸暟鎹? 鎴戜滑鐨勪緥瀛? 鏄劇ず鍦ㄤ笅闈? 灝嗚В鏋愭枃鏈瓧絎︿覆"9-29-2001"騫跺垱寤轟竴涓間負(fù)001736000000 鐨勬棩鏈熷璞? 閫氳繃parse()鏂規(guī)硶錛孌ateFormat鑳藉浠ヤ竴涓瓧絎︿覆鍒涚珛涓涓狣ate瀵硅薄銆傝繖涓柟娉曡兘鎶涘嚭ParseException寮傚父錛屾墍浠ヤ綘蹇呴』浣跨敤閫傚綋鐨勫紓甯稿鐞嗘妧鏈備緥瀛愮▼搴?
import java.text.SimpleDateFormat; import java.util.Date; public class DateExample3
{
public static void main(String[] args)
{
// Create a date formatter that can parse dates of
// the form MM-dd-yyyy. SimpleDateFormat bartDateFormat = new SimpleDateFormat("MM-dd-yyyy");
// Create a string containing a text date to be parsed. String dateStringToParse = "9-29-2001";
try
{
// Parse the text version of the date.
// We have to perform the parse method in a
// try-catch construct in case dateStringToParse
// does not contain a date in the format we are expecting. Date date = bartDateFormat.parse(dateStringToParse);
// Now send the parsed date as a long value
// to the system output. System.out.println(date.getTime()); }catch (Exception ex)
{
System.out.println(ex.getMessage());
}
}
}
1.4. 浣跨敤鏍囧噯鐨勬棩鏈熸牸寮忓寲榪囩▼
鏃㈢劧鎴戜滑宸茬粡鍙互鐢熸垚鍜岃В鏋愬畾鍒剁殑鏃ユ湡鏍煎紡浜? 璁╂垜浠潵鐪嬩竴鐪嬪浣曚嬌鐢ㄥ唴寤虹殑鏍煎紡鍖栬繃紼? 鏂規(guī)硶 DateFormat.getDateTimeInstance() 璁╂垜浠緱浠ョ敤鍑犵涓嶅悓鐨勬柟娉曡幏寰楁爣鍑嗙殑鏃ユ湡鏍煎紡鍖栬繃紼? 鍦ㄤ笅闈㈢殑渚嬪瓙涓? 鎴戜滑鑾峰彇浜?jiǎn)鍥涗釜鍐呭缓鐨勬棩鏈熸牸寮忓寲杩嚱E? 瀹冧滑鍖呮嫭涓涓煭鐨? 涓瓑鐨? 闀跨殑, 鍜屽畬鏁寸殑鏃ユ湡鏍煎紡.
import java.text.DateFormat;
import java.util.Date;
public class DateExample4
{
public static void main(String[] args)
{ Date date = new Date();
DateFormat shortDateFormat = DateFormat.getDateTimeInstance( DateFormat.SHORT, DateFormat.SHORT);
DateFormat mediumDateFormat = DateFormat.getDateTimeInstance( DateFormat.MEDIUM, DateFormat.MEDIUM);
DateFormat longDateFormat = DateFormat.getDateTimeInstance( DateFormat.LONG, DateFormat.LONG);
DateFormat fullDateFormat = DateFormat.getDateTimeInstance( DateFormat.FULL, DateFormat.FULL);
System.out.println(shortDateFormat.format(date)); System.out.println(mediumDateFormat.format(date));
System.out.println(longDateFormat.format(date)); System.out.println(fullDateFormat.format(date));
}
}
娉ㄦ剰鎴戜滑鍦ㄥ getDateTimeInstance鐨勬瘡嬈¤皟鐢ㄤ腑閮戒紶閫掍簡(jiǎn)涓や釜鍊? 絎竴涓弬鏁版槸鏃ユ湡椋庢牸, 鑰岀浜屼釜鍙傛暟鏄椂闂撮鏍? 瀹冧滑閮芥槸鍩烘湰鏁版嵁綾誨瀷int(鏁村瀷). 鑰冭檻鍒板彲璇繪? 鎴戜滑浣跨敤浜?jiǎn)DateFormat 綾繪彁渚涚殑甯擱噺: SHORT, MEDIUM, LONG, 鍜?FULL. 瑕佺煡閬撹幏鍙栨椂闂村拰鏃ユ湡鏍煎紡鍖栬繃紼嬬殑鏇村鐨勬柟娉曞拰閫夐」, 璇風(fēng)湅Sun 鍏徃Web 绔欑偣涓婄殑瑙i噴. 榪愯鎴戜滑鐨勪緥瀛愮▼搴忕殑鏃跺? 瀹冨皢鍚戞爣鍑嗚緭鍑?guó)櫘惧杈撳囖Z笅闈㈢殑鍐呭: 9/29/01 8:44 PM Sep 29, 2001 8:44:45 PM September 29, 2001 8:44:45 PM EDT Saturday, September 29, 2001 8:44:45 PM EDT 2. Calendar 鏃ュ巻綾?棣栧厛璇瘋浣?Calendar 鍙槸涓涓娊璞$被, 涔熷氨鏄浣犳棤娉曠洿鎺ヨ幏寰楀畠鐨勪竴涓疄渚嬶紝鎹㈣岃█涔嬩綘鍙互鎻愪緵涓涓嚜宸卞紑鍙戠殑 Calendar 瀵硅薄銆傞偅絀剁珶浠涔堟槸涓涓?Calendar 鍛紵涓枃鐨勭炕璇戝氨鏄棩鍘嗭紝閭f垜浠珛鍒誨彲浠ユ兂鍒版垜浠敓媧諱腑鏈夐槼(鍏?鍘嗐侀槾(鍐?鍘嗕箣鍒嗐傚畠浠殑鍖哄埆鍦ㄥ摢鍛紵姣斿鏈夛細(xì)鏈堜喚鐨勫畾涔?- 闃砢(鍏?鍘?涓騫?2 涓湀錛屾瘡涓湀鐨勫ぉ鏁板悇涓嶅悓錛涢槾(鍐?鍘嗭紝姣忎釜鏈堝浐瀹?8澶?姣忓懆鐨勭涓澶?- 闃?鍏?鍘嗘槦鏈熸棩鏄涓澶╋紱闃?鍐?鍘嗭紝鏄熸湡涓鏄涓澶╁疄闄呬笂錛屽湪鍘嗗彶涓婃湁鐫璁稿縐嶇邯鍏冪殑鏂規(guī)硶銆傚畠浠殑宸紓瀹炲湪澶ぇ浜?jiǎn)锛屾瘮濡傝涓涓漢鐨勭敓鏃ユ槸"鍏湀鍏棩" 閭d箞涓縐嶅彲鑳芥槸闃?鍏?鍘嗙殑鍏湀鍏棩錛屼絾涔熷彲浠ユ槸闃?鍐?鍘嗙殑鏃ユ湡銆傛墍浠ヤ負(fù)浜?jiǎn)璁℃椂鐨劸l熶竴錛屽繀闇鎸囧畾涓涓棩鍘嗙殑閫夋嫨銆傞偅鐜板湪鏈涓烘櫘鍙?qiáng)鍜岄氱敤鐨勬棩鍘嗗氨鏄?"Gregorian Calendar"銆備篃灝辨槸鎴戜滑鍦ㄨ榪板勾浠芥椂甯哥敤 "鍏厓鍑犲嚑騫?銆侰alendar 鎶借薄綾誨畾涔変簡(jiǎn)瓚沖鐨勬柟娉曪紝璁╂垜浠兘澶熻〃榪版棩鍘嗙殑瑙勫垯銆侸ava 鏈韓鎻愪緵浜?jiǎn)瀵?"Gregorian Calendar" 瑙勫垯鐨勫疄鐜般傛垜浠粠 Calendar.getInstance() 涓墍鑾峰緱鐨勫疄渚嬪氨鏄竴涓?"GreogrianCalendar" 瀵硅薄(涓庢?zhèn)ㄩ氳繃 new GregorianCalendar() 鑾峰緱鐨勭粨鏋滀竴鑷?銆備笅闈㈢殑浠g爜鍙互璇佹槑榪欎竴鐐癸細(xì)
import java.io.*;
import java.util.*;
public class WhatIsCalendar
{
public static void main(String[] args)
{
Calendar calendar = Calendar.getInstance();
if (calendar instanceof GregorianCalendar)
System.out.println("It is an instance of GregorianCalendar");
}
}
Calendar 鍦?Java 涓槸涓涓娊璞$被(Abstract Class)錛孏regorianCalendar 鏄畠鐨勪竴涓叿浣撳疄鐜般侰alendar 涓?Date 鐨勮漿鎹㈤潪甯哥畝鍗曪細(xì) Calendar calendar = Calendar.getInstance(); // 浠庝竴涓?Calendar 瀵硅薄涓幏鍙?Date 瀵硅薄 Date date = calendar.getTime(); // 灝?Date 瀵硅薄鍙嶅簲鍒頒竴涓?Calendar 瀵硅薄涓紝 // Calendar/GregorianCalendar 娌℃湁鏋勯犲嚱鏁板彲浠ユ帴鍙?Date 瀵硅薄 // 鎵浠ユ垜浠繀闇鍏堣幏寰椾竴涓疄渚嬶紝鐒跺悗璁劇疆 Date 瀵硅薄 calendar.setTime(date);Calendar 瀵硅薄鍦ㄤ嬌鐢ㄦ椂錛屾湁涓浜涘煎緱娉ㄦ剰鐨勪簨欏癸細(xì)
1. Calendar 鐨?set() 鏂規(guī)硶
set(int field, int value) - 鏄敤鏉ヨ緗?騫?鏈?鏃?灝忔椂/鍒嗛挓/縐?寰"絳夊糵ield 鐨勫畾涔夊湪 Calendar 涓璼et(int year, int month, int day, int hour, int minute, int second) 浣嗘病鏈塻et(int year, int month, int day, int hour, int minute, int second, int millisecond) 鍓嶉潰 set(int,int,int,int,int,int) 鏂規(guī)硶涓嶄細(xì)鑷姩灝?MilliSecond 娓呬負(fù) 0銆傚彟澶栵紝鏈堜喚鐨勮搗濮嬪間負(fù)錛愯屼笉鏄紤錛屾墍浠ヨ璁劇疆鍏湀鏃訛紝鎴戜滑鐢紬鑰屼笉鏄?銆俢alendar.set(Calendar.MONTH, 7);鎴戜滑閫氬父闇瑕佸湪紼嬪簭閫昏緫涓皢瀹冩竻涓?0錛屽惁鍒欏彲鑳戒細(xì)鍑虹幇涓嬮潰鐨勬儏鍐碉細(xì)
import java.io.*;
import java.util.*;
public class WhatIsCalendarWrite
{
public static void main(String[] args) throws Exception{
ObjectOutputStream out = new ObjectOutputStream( new FileOutputStream("calendar.out"));
Calendar cal1 = Calendar.getInstance();