java日期函数2
来源:互联网 发布:vscode c 生成exe 编辑:程序博客网 时间:2024/05/01 21:25
java日期函数 posted by kozzi on 2005, May 11, 12:43 PM. 技术资料 java日期函数
/**
* 得到当前日期前后的日期
* @return 返回日期字符串
*/
public static final String getBefDateString(int day_i){
Date date=new Date(System.currentTimeMillis()-day_i*24*60*60*1000);
SimpleDateFormat formattxt=new SimpleDateFormat("yyyy-MM-dd");
return formattxt.format(date);
}
/**
* 得到当前日期前后的日期 -函数功能和上边的一样。
* @return 返回日期字符串
*/
public static final String getBefDateString(int day_i){
Calendar day=Calendar.getInstance();
day.add(Calendar.DATE,day_i);
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
return sdf.format(day.getTime());
}
评论 你可以使用 SimpleDateFormat 类,如果日期格式不对,会产生异常。
import java.text.*;
import java.util.*;
public class TestDate {
public static void main(String[] args) {
String dStr = "2001.12.12-08.23.21";
Date d = null;
SimpleDateFormat sdf = new SimpleDateFormat("yyyy.MM.dd-HH.mm.ss");
try {
d = sdf.parse(dStr);
} catch (ParseException pe) {
System.out.println(pe.getMessage());
}
System.out.println(d);
System.out.println(d.getTime());
}
}
在 java.text 包中找到那个 SimpleDateFormat 类,给它一个模板,可以 parse 成一个 Date,然后使用 Date 类的 getItme() 方法,可以得到一个 Long 数据。
模板定义如下:
y 年号,如 1996
M 月份,如 July 或者 07
d 月中第几天,如 12
H 小时(24制),如 0、17
m 分钟,如 32
s 钞钟,如55
S 微钞,如978
E 星期几,如 Tuesday
D 一年中的第几天,如 189
w week in year (Number) 27
W week in month (Number) 2
a am/pm marker (Text) PM
k hour in day (1~24) (Number) 24
K hour in am/pm (0~11) (Number) 0
z time zone (Text) Pacific Standard Time
' escape for text (Delimiter)
'' single quote (Literal) '
Post by kozzi on 2005, May 11, 1:10 PM
使用:在flash中第一帧写上var sim = SimpleDateFormat("yyyy/MM/dd");
然后new一个日期对象var date = new Date();然后把date格式化,调用方法并显示出来:trace(sim.format(date))这样就可以得到型如这样yyyy/MM/dd的日期2004/07/03了,如果你在构造sim对象时这样写var sim = SimpleDateFormat("yy/MM/dd");就可以得到型如这样yy/MM/dd的日期04/07/03了,只要你想要什么样的格式,就在构造sim对象时写出他的格式就可以了。就是说,日期的分隔,和显示方式都可以由你自己任意指定。
这里有如下规定:
y表示年,yy表示显示2位,yyyy显示全部,
M表示月,都要用MM
d表示日,都要用dd
如果不要年月日其中的哪个也可以,就在构造时不写就可以了,比如说不要年,只显示月日就可以这样var sim = SimpleDateFormat("MM/dd");
具体代码如下,大家讨论,看有什么不当的地方,我再改正,到时再写一个详细教程,并把这个类提供给大家使用,一个咱们自己开发的类,自己用,呵呵。我还会写相关的一些类,希望有兴趣的朋友到时关注
/**
* Title: 格式化日期类
* Description:
* Company:
* Copyright
* @author wei386
* @version 1.0
*/
class SimpleDateFormat
{
private var timetype :String;
private var date:Date;
private var year:String;
private var month:String;
private var day:String;
function SimpleDateFormat(type:String)
{
this.timetype=type;
}
/**
* 得到包含字符串firststring的开始位置
* @param String firststring
* @return Number
*/
private function firstString(firststring:String):Number
{
var starts:Number = timetype.indexOf(firststring);
return starts;
}
/**
* 得到包含字符串firststring的结束位置
* @param String firststring
* @return Number
*/
private function lastString(laststring:String):Number
{
var ends:Number = timetype.lastIndexOf(laststring);
return ends;
}
/**
* 查找是否年
* @param
* @return Boolean
*/
private function findYear():Boolean
{
var starts = this.firstString("y");
var ends = this.lastString("y");
var yeartype = ends-starts;
if(yeartype==3)
{
this.year=""+this.date.getFullYear();
return true;
}else if(yeartype==1)
{
var shortyear :String= ""+this.date.getFullYear();
this.year = shortyear.substring(2,4);
return true
}else if(starts==-1||ends==-1)
{
return false;
}
else{
trace("年份格式不正确");
return false;
}
}
/**
* 查找是否月
* @param
* @return Boolean
*/
private function findMonth():Boolean
{
var starts = this.firstString("M");
var ends = this.lastString("M");
var monthtype = ends-starts;
if(starts==-1)
{
return false;
}
else if(monthtype==1)
{
var newmonth = this.date.getMonth()+1;
if(newmonth<10>
{
this.month="0"+newmonth;
}else{
this.month=""+newmonth;
}
return true
}
else{
trace("月份格式不正确");
return false;
}
}
/**
* 查找是否日
* @param
* @return Boolean
*/
private function findDay():Boolean
{
var starts = this.firstString("d");
var ends = this.lastString("d");
var monthtype = ends-starts;
if(starts==-1)
{
return false;
}
else if(monthtype==1)
{
var newday=this.date.getDate();
if(newday<10>
{
this.day="0"+newday;
}else
{
this.day=""+newday;
}
return true
}
else{
trace("日子格式不正确");
return false;
}
}
/**
* 按照构造函数时的格式,格式化传进来的date对象
* @param Date pdate
* @return String
*/
public function format(pdate:Date):String
{
this.date=pdate;
var stringlength = timetype.length;
var ystarts = this.firstString("y");
var yends = this.lastString("y");
var mstarts = this.firstString("M");
var mends = this.lastString("M");
var dstarts = this.firstString("d");
var dends = this.lastString("d");
var isyear=this.findYear();
var ismonth=this.findMonth();
var isday=this.findDay();
if(isyear)
{
this.showresult(ystarts,yends,this.year);
}
if(ismonth)
{
this.showresult(mstarts,mends,this.month);
}
if(isday)
{
this.showresult(dstarts,dends,this.day);
}
return timetype;
}
/**
* 在相应的位置替换成日期结果
* @param Number nstart,Number nend,String ndate
* @return void
*/
private function showresult(nstart:Number,nend:Number,ndate:String):Void
{
this.timetype = this.timetype.substring(0,nstart)+ndate+this.timetype.substring(nend+1,this.timetype.length);
}
} Post by kozzi on 2005, May 11, 1:11 PM
SimpleDateFormat函数使用的例子
public class SimpleDateFormat extends DateFormat
SimpleDateFormat 是一个以国别敏感的方式格式化和分析数据的具体类。 它允许格式化 (date -> text)、语法分析 (text -> date)和标准化。
SimpleDateFormat 允许以为日期-时间格式化选择任何用户指定的方式启动。 但是,希望用 DateFormat 中的 getTimeInstance、 getDateInstance 或 getDateTimeInstance 创建一个日期-时间格式化程序。 每个类方法返回一个以缺省格式化方式初始化的日期/时间格式化程序。 可以根据需要用 applyPattern 方法修改格式化方式。
SimpleDateFormat函数的继承关系:
java.lang.Object
|
+----java.text.Format
|
+----java.text.DateFormat
|
+----java.text.SimpleDateFormat
下面是个小例子:
import java.text.*;
import java.util.Date;
/**
SimpleDateFormat函数语法:
G 年代标志符
y 年
M 月
d 日
h 时 在上午或下午 (1~12)
H 时 在一天中 (0~23)
m 分
s 秒
S 毫秒
E 星期
D 一年中的第几天
F 一月中第几个星期几
w 一年中第几个星期
W 一月中第几个星期
a 上午 / 下午 标记符
k 时 在一天中 (1~24)
K 时 在上午或下午 (0~11)
z 时区
*/
public class FormatDateTime {
public static void main(String[] args) {
SimpleDateFormat myFmt=new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒");
SimpleDateFormat myFmt1=new SimpleDateFormat("yy/MM/dd HH:mm");
SimpleDateFormat myFmt2=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//等价于now.toLocaleString()
SimpleDateFormat myFmt3=new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒 E ");
SimpleDateFormat myFmt4=new SimpleDateFormat(
"一年中的第 D 天 一年中第w个星期 一月中第W个星期 在一天中k时 z时区");
Date now=new Date();
System.out.println(myFmt.format(now));
System.out.println(myFmt1.format(now));
System.out.println(myFmt2.format(now));
System.out.println(myFmt3.format(now));
System.out.println(myFmt4.format(now));
System.out.println(now.toGMTString());
System.out.println(now.toLocaleString());
System.out.println(now.toString());
}
}
效果:
2004年12月16日 17时24分27秒
04/12/16 17:24
2004-12-16 17:24:27
2004年12月16日 17时24分27秒 星期四
一年中的第 351 天 一年中第51个星期 一月中第3个星期 在一天中17时 CST时区
16 Dec 2004 09:24:27 GMT
2004-12-16 17:24:27
Thu Dec 16 17:24:27 CST 2004
下面是个JavaBean:
public class FormatDateTime {
public static String toLongDateString(Date dt){
SimpleDateFormat myFmt=new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒 E ");
return myFmt.format(dt);
}
public static String toShortDateString(Date dt){
SimpleDateFormat myFmt=new SimpleDateFormat("yy年MM月dd日 HH时mm分");
return myFmt.format(dt);
}
public static String toLongTimeString(Date dt){
SimpleDateFormat myFmt=new SimpleDateFormat("HH mm ss SSSS");
return myFmt.format(dt);
}
public static String toShortTimeString(Date dt){
SimpleDateFormat myFmt=new SimpleDateFormat("yy/MM/dd HH:mm");
return myFmt.format(dt);
}
public static void main(String[] args) {
Date now=new Date();
System.out.println(FormatDateTime.toLongDateString(now));
System.out.println(FormatDateTime.toShortDateString(now));
System.out.println(FormatDateTime.toLongTimeString(now));
System.out.println(FormatDateTime.toShortTimeString(now));
}
}
调用的main 测试结果:
2004年12月16日 17时38分26秒 星期四
04年12月16日 17时38分
17 38 26 0965
04/12/16 17:38
/**
* 得到当前日期前后的日期
* @return 返回日期字符串
*/
public static final String getBefDateString(int day_i){
Date date=new Date(System.currentTimeMillis()-day_i*24*60*60*1000);
SimpleDateFormat formattxt=new SimpleDateFormat("yyyy-MM-dd");
return formattxt.format(date);
}
/**
* 得到当前日期前后的日期 -函数功能和上边的一样。
* @return 返回日期字符串
*/
public static final String getBefDateString(int day_i){
Calendar day=Calendar.getInstance();
day.add(Calendar.DATE,day_i);
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
return sdf.format(day.getTime());
}
评论 你可以使用 SimpleDateFormat 类,如果日期格式不对,会产生异常。
import java.text.*;
import java.util.*;
public class TestDate {
public static void main(String[] args) {
String dStr = "2001.12.12-08.23.21";
Date d = null;
SimpleDateFormat sdf = new SimpleDateFormat("yyyy.MM.dd-HH.mm.ss");
try {
d = sdf.parse(dStr);
} catch (ParseException pe) {
System.out.println(pe.getMessage());
}
System.out.println(d);
System.out.println(d.getTime());
}
}
在 java.text 包中找到那个 SimpleDateFormat 类,给它一个模板,可以 parse 成一个 Date,然后使用 Date 类的 getItme() 方法,可以得到一个 Long 数据。
模板定义如下:
y 年号,如 1996
M 月份,如 July 或者 07
d 月中第几天,如 12
H 小时(24制),如 0、17
m 分钟,如 32
s 钞钟,如55
S 微钞,如978
E 星期几,如 Tuesday
D 一年中的第几天,如 189
w week in year (Number) 27
W week in month (Number) 2
a am/pm marker (Text) PM
k hour in day (1~24) (Number) 24
K hour in am/pm (0~11) (Number) 0
z time zone (Text) Pacific Standard Time
' escape for text (Delimiter)
'' single quote (Literal) '
Post by kozzi on 2005, May 11, 1:10 PM
使用:在flash中第一帧写上var sim = SimpleDateFormat("yyyy/MM/dd");
然后new一个日期对象var date = new Date();然后把date格式化,调用方法并显示出来:trace(sim.format(date))这样就可以得到型如这样yyyy/MM/dd的日期2004/07/03了,如果你在构造sim对象时这样写var sim = SimpleDateFormat("yy/MM/dd");就可以得到型如这样yy/MM/dd的日期04/07/03了,只要你想要什么样的格式,就在构造sim对象时写出他的格式就可以了。就是说,日期的分隔,和显示方式都可以由你自己任意指定。
这里有如下规定:
y表示年,yy表示显示2位,yyyy显示全部,
M表示月,都要用MM
d表示日,都要用dd
如果不要年月日其中的哪个也可以,就在构造时不写就可以了,比如说不要年,只显示月日就可以这样var sim = SimpleDateFormat("MM/dd");
具体代码如下,大家讨论,看有什么不当的地方,我再改正,到时再写一个详细教程,并把这个类提供给大家使用,一个咱们自己开发的类,自己用,呵呵。我还会写相关的一些类,希望有兴趣的朋友到时关注
/**
* Title: 格式化日期类
* Description:
* Company:
* Copyright
* @author wei386
* @version 1.0
*/
class SimpleDateFormat
{
private var timetype :String;
private var date:Date;
private var year:String;
private var month:String;
private var day:String;
function SimpleDateFormat(type:String)
{
this.timetype=type;
}
/**
* 得到包含字符串firststring的开始位置
* @param String firststring
* @return Number
*/
private function firstString(firststring:String):Number
{
var starts:Number = timetype.indexOf(firststring);
return starts;
}
/**
* 得到包含字符串firststring的结束位置
* @param String firststring
* @return Number
*/
private function lastString(laststring:String):Number
{
var ends:Number = timetype.lastIndexOf(laststring);
return ends;
}
/**
* 查找是否年
* @param
* @return Boolean
*/
private function findYear():Boolean
{
var starts = this.firstString("y");
var ends = this.lastString("y");
var yeartype = ends-starts;
if(yeartype==3)
{
this.year=""+this.date.getFullYear();
return true;
}else if(yeartype==1)
{
var shortyear :String= ""+this.date.getFullYear();
this.year = shortyear.substring(2,4);
return true
}else if(starts==-1||ends==-1)
{
return false;
}
else{
trace("年份格式不正确");
return false;
}
}
/**
* 查找是否月
* @param
* @return Boolean
*/
private function findMonth():Boolean
{
var starts = this.firstString("M");
var ends = this.lastString("M");
var monthtype = ends-starts;
if(starts==-1)
{
return false;
}
else if(monthtype==1)
{
var newmonth = this.date.getMonth()+1;
if(newmonth<10>
{
this.month="0"+newmonth;
}else{
this.month=""+newmonth;
}
return true
}
else{
trace("月份格式不正确");
return false;
}
}
/**
* 查找是否日
* @param
* @return Boolean
*/
private function findDay():Boolean
{
var starts = this.firstString("d");
var ends = this.lastString("d");
var monthtype = ends-starts;
if(starts==-1)
{
return false;
}
else if(monthtype==1)
{
var newday=this.date.getDate();
if(newday<10>
{
this.day="0"+newday;
}else
{
this.day=""+newday;
}
return true
}
else{
trace("日子格式不正确");
return false;
}
}
/**
* 按照构造函数时的格式,格式化传进来的date对象
* @param Date pdate
* @return String
*/
public function format(pdate:Date):String
{
this.date=pdate;
var stringlength = timetype.length;
var ystarts = this.firstString("y");
var yends = this.lastString("y");
var mstarts = this.firstString("M");
var mends = this.lastString("M");
var dstarts = this.firstString("d");
var dends = this.lastString("d");
var isyear=this.findYear();
var ismonth=this.findMonth();
var isday=this.findDay();
if(isyear)
{
this.showresult(ystarts,yends,this.year);
}
if(ismonth)
{
this.showresult(mstarts,mends,this.month);
}
if(isday)
{
this.showresult(dstarts,dends,this.day);
}
return timetype;
}
/**
* 在相应的位置替换成日期结果
* @param Number nstart,Number nend,String ndate
* @return void
*/
private function showresult(nstart:Number,nend:Number,ndate:String):Void
{
this.timetype = this.timetype.substring(0,nstart)+ndate+this.timetype.substring(nend+1,this.timetype.length);
}
} Post by kozzi on 2005, May 11, 1:11 PM
SimpleDateFormat函数使用的例子
public class SimpleDateFormat extends DateFormat
SimpleDateFormat 是一个以国别敏感的方式格式化和分析数据的具体类。 它允许格式化 (date -> text)、语法分析 (text -> date)和标准化。
SimpleDateFormat 允许以为日期-时间格式化选择任何用户指定的方式启动。 但是,希望用 DateFormat 中的 getTimeInstance、 getDateInstance 或 getDateTimeInstance 创建一个日期-时间格式化程序。 每个类方法返回一个以缺省格式化方式初始化的日期/时间格式化程序。 可以根据需要用 applyPattern 方法修改格式化方式。
SimpleDateFormat函数的继承关系:
java.lang.Object
|
+----java.text.Format
|
+----java.text.DateFormat
|
+----java.text.SimpleDateFormat
下面是个小例子:
import java.text.*;
import java.util.Date;
/**
SimpleDateFormat函数语法:
G 年代标志符
y 年
M 月
d 日
h 时 在上午或下午 (1~12)
H 时 在一天中 (0~23)
m 分
s 秒
S 毫秒
E 星期
D 一年中的第几天
F 一月中第几个星期几
w 一年中第几个星期
W 一月中第几个星期
a 上午 / 下午 标记符
k 时 在一天中 (1~24)
K 时 在上午或下午 (0~11)
z 时区
*/
public class FormatDateTime {
public static void main(String[] args) {
SimpleDateFormat myFmt=new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒");
SimpleDateFormat myFmt1=new SimpleDateFormat("yy/MM/dd HH:mm");
SimpleDateFormat myFmt2=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//等价于now.toLocaleString()
SimpleDateFormat myFmt3=new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒 E ");
SimpleDateFormat myFmt4=new SimpleDateFormat(
"一年中的第 D 天 一年中第w个星期 一月中第W个星期 在一天中k时 z时区");
Date now=new Date();
System.out.println(myFmt.format(now));
System.out.println(myFmt1.format(now));
System.out.println(myFmt2.format(now));
System.out.println(myFmt3.format(now));
System.out.println(myFmt4.format(now));
System.out.println(now.toGMTString());
System.out.println(now.toLocaleString());
System.out.println(now.toString());
}
}
效果:
2004年12月16日 17时24分27秒
04/12/16 17:24
2004-12-16 17:24:27
2004年12月16日 17时24分27秒 星期四
一年中的第 351 天 一年中第51个星期 一月中第3个星期 在一天中17时 CST时区
16 Dec 2004 09:24:27 GMT
2004-12-16 17:24:27
Thu Dec 16 17:24:27 CST 2004
下面是个JavaBean:
public class FormatDateTime {
public static String toLongDateString(Date dt){
SimpleDateFormat myFmt=new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒 E ");
return myFmt.format(dt);
}
public static String toShortDateString(Date dt){
SimpleDateFormat myFmt=new SimpleDateFormat("yy年MM月dd日 HH时mm分");
return myFmt.format(dt);
}
public static String toLongTimeString(Date dt){
SimpleDateFormat myFmt=new SimpleDateFormat("HH mm ss SSSS");
return myFmt.format(dt);
}
public static String toShortTimeString(Date dt){
SimpleDateFormat myFmt=new SimpleDateFormat("yy/MM/dd HH:mm");
return myFmt.format(dt);
}
public static void main(String[] args) {
Date now=new Date();
System.out.println(FormatDateTime.toLongDateString(now));
System.out.println(FormatDateTime.toShortDateString(now));
System.out.println(FormatDateTime.toLongTimeString(now));
System.out.println(FormatDateTime.toShortTimeString(now));
}
}
调用的main 测试结果:
2004年12月16日 17时38分26秒 星期四
04年12月16日 17时38分
17 38 26 0965
04/12/16 17:38
- java日期函数2
- java日期函数
- JAVA日期函数
- java时间日期函数
- java 日期函数
- Java日期时间函数
- java日期函数集合
- java日期函数
- java 日期函数
- 【java】----日期函数大全
- java日期处理函数
- java 日期转换函数
- java日期函数操作
- java 日期相关函数
- 大量java日期格式化、日期处理函数
- 关于Java日期处理函数
- 关于java日期的函数
- Java的日期时间函数
- 我对【纹理颜色混合】与【ALPHA混合】的理解
- 经典对白,超然人生
- 上传文件 JSP+java
- C#通过Win32 API操作IE浏览器 --- 获得IE的URL
- DataGrid数据导出excel文件,有时出现乱码解决方法。
- java日期函数2
- 北京拟严控“双外生”进京 近九成青年表示反对
- 高效能人士的9种性格(转载)
- 关于字符串逆序的问题
- 开放封闭原则--OCP
- 进制转换(一)
- 炎龙骑士团-黄金城之迷剧情
- 防火墙基本配置任务列表
- JAVA截小数点后两位