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

来源:互联网 发布:织梦小说网站源码 编辑:程序博客网 时间:2024/05/29 08:08

要想显示出各种各样的日期格式。

    首先,在数据库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[n];
    }
%>
<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 中的 getTimeInstancegetDateInstancegetDateTimeInstance 创建一个日期-时间格式化程序。 每个类方法返回一个以缺省格式化方式初始化的日期/时间格式化程序。可以根据需要用 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
MMddHHmmss");
         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
MMddHHmmssE ");
         SimpleDateFormat myFmt4=new SimpleDateFormat(
                 "
一年中的第 D 天一年中第w个星期一月中第W个星期在一天中kz时区");
         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
2427
04/12/16 17:24
2004-12-16 17:24:27
2004
1216172427秒 星期四
一年中的第 351 天 一年中第51个星期 一月中第3个星期 在一天中17CST时区
16 Dec 2004 09:24:27 GMT
2004-12-16 17:24:27
Thu Dec 16 17:24:27 CST 2004

----------------------

java中取得当前的系统时间并且转化成自己想要的格式
    
需要引进 java.util.Calendarjava.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中
    }