您的位置:首页 > Web前端 > JavaScript

JSP如何显示年月日星期时分秒

2010-08-11 14:30 363 查看
要想显示出各种各样的日期格式。

首先,在数据库mysql中不能把日期字段定义成datetime类型,要保存为varchar类型,否则不管你存入什么格式,取出来都是01-09-09的样式。
其次,在向数据库存数据的java中,可以利用法二存入各种格式的simpledatetime类型数据。
最后,在取日期的jsp文件中,取出合适记录,以getstring方式取出来就可以了,就是你想要的格式。
或者是用getDate取出然后用SimpleDateFormat去格式化成你希望的格式!
法一:利用javascript

<script language=JavaScript>

today=new Date();

function initArray(){

this.length=initArray.arguments.length

for(var i=0;i<this.length;i++)

this[i+1]=initArray.arguments[i] }

var d=new initArray(

"星期日",

"星期一",

"星期二",

"星期三",

"星期四",

"星期五",

"星期六");

document.write(

"<font color=##000000 style='font-size:9pt;font-family: 幼圆'> ",

today.getYear(),"年",

today.getMonth()+1,"月",

today.getDate(),"日 ",

d[today.getDay()+1],

"</font>" );

</script>

法二:JSP代码

<%@ page contentType="text/html;charset=GB2312" %>

<%@ page import="java.util.*"%>

<%! public String getDayWeek(int n)

{ String week[]={"星期日","星期一","星期二","星期三","星期四","星期五","星期六"};

return week
;

}

%>

<HTML>

<BODY bgcolor=cyan><Font size=1>

<% Calendar calendar=Calendar.getInstance(); //创建一个日历对象。

calendar.setTime(new Date());//用当前时间初始化日历时间。

String 年=String.valueOf(calendar.get(Calendar.YEAR)),

月=String.valueOf(calendar.get(Calendar.MONTH)+1),

日=String.valueOf(calendar.get(Calendar.DAY_OF_MONTH)),

星期=getDayWeek(calendar.get(Calendar.DAY_OF_WEEK)-1);

int hour=calendar.get(Calendar.HOUR_OF_DAY),

minute=calendar.get(Calendar.MINUTE),

second=calendar.get(Calendar.SECOND);

%>

<P>现在的时间是<BR>

<%=年%>年

<%=月%>月

<%=日%>日 

<%=星期%>

<BR>

<%=hour%>点

<%=minute%>分

<%=second%>秒

<% if(日.equals("26"))

{out.print("<BR><H2>今天是病毒容易发作的日子!</H2>");

}

if(hour>=22)

{ out.print("<BR><H2>现在时间很晚了注意休息</H2>");

}

%> 

</FONT>

</BODY>

</HTML>

法三: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;

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
----------------------

在java中取得当前的系统时间并且转化成自己想要的格式

需要引进 java.util.Calendar 和 java.text.SimpleDateFormat 这两个类:

Calendar rightNow = Calendar.getInstance();

SimpleDateFormat fmt = new SimpleDateFormat("yyyyMMddhhmmss");

String sysDatetime = fmt.format(rightNow.getTime());

可以对 new SimpleDateFormat("yyyyMMddhhmmss") 中引号里面的格式进行编辑,转换成自己相要的格式,比如还可以转

换成 new SimpleDateFormat("yyyy/MM/dd hh:mm:ss ") 的格式

java 日期处理(转)

1.ResultSet.getDate() 从数据库中取出日期为java.sql.Date,它的父类就是java.util.Date

示例:

SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy年MM月dd日");

System.out.println(simpleDateFormat.format(new Date()));

输出结果为:2010年04月01日

SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy年MM月d日");

System.out.println(simpleDateFormat.format(new Date()));

输出结果为:2010年04月1日

SimpleDateFormat simpleDateFormat = new SimpleDateFormat("MM");

System.out.println(simpleDateFormat.format(new Date()));

输出结果为:04;

注:SimpleDateFormat中的格式类型有多种,根据提供的类型返回指定类型的值(String类型),可参考API

2.Calendar类是一个抽象类,获取实例方法:Calendar rightNow = Calendar.getInstance();

示例:

Calendar calendar= Calendar.getInstance();

calendar.setTime(new Date());

calendar.get(Calendar.MONTH);

注:这种返回返回的值是int类型。

3.Timestamp用来处理数据库时间问题

示例:

SimpleDateFormat simpleDateFormat = new SimpleDateFormat("HH:mm:ss");

System.out.println(simpleDateFormat.format(ResultSet.getDate(""));

结果输出为:00:00:00

修改为:

System.out.println(simpleDateFormat.format(ResultSet.getTimestamp(""));

就是显示正常的时分秒了!

4.与日期和时间相关的类

java.lang.System/ System.currentTimeMillis();

java.util.Date

java.util.Calendar

java.util.GregorianCalendar

java.util.TimeZone

java.text.DateFormat

数据库相关的三个类,是java.util.Date的子类

java.sql.Date

java.sql.Time

java.sql.Timestamp

5.把字符串转换成日期或时间类型

1)使用Timestamp和字符串的yyyy-mm-dd hh:mm:ss.fffffffff 格式

示例:

//使用 yyyy-mm-dd hh:mm:ss.fffffffff 格式的 String 对象

String s = "2010-04-01 12:12:12.0";

Timestamp timestamp = Timestamp.valueOf(s);

2)TimeZone、Calendar

示例:

Calendar hkCalendar = new GregorianCalendar(TimeZone.getTimeZone("Hongkong"));

hkCalendar.get(Calendar.DAY_OF_WEEK);

System.out.println(hkCalendar.get(Calendar.DAY_OF_WEEK));

for (String id : TimeZone.getAvailableIDs()) {

System.out.println(id);//这里出现的值都可以出现在TimeZone.getTimeZone("id")中的id中

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: