Hibernate+sqlserver向数据库中添加日期类型
从数据库中读取日期值:
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
{
TimeForm timeForm = (TimeForm) form;// TODO Auto-generated method stub
String id = timeForm.getTimeid();
Configuration config = new Configuration().configure();
SessionFactory sf = config.buildSessionFactory();
Session session = sf.openSession();
Info info = (Info) session.get(Info.class, Integer.parseInt(id));
if (info != null)
{
System.out.println(new SimpleDateFormat("yyyy年MM月dd日").format(info.getBirth()));//Timestamp依据一定的格式转化为String类型。
request.getSession().setAttribute("time",new SimpleDateFormat("yyyy年MM月dd日 hh:mm:ss").format(info.getBirth()));
return mapping.findForward("success");
} else
{
return mapping.findForward("failure");
}
在数据库中更新数据
代码如下:
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws ParseException
{
UpdateForm updateForm = (UpdateForm) form;// TODO Auto-generated method
// stub
String id = updateForm.getTimeid();
String birth = updateForm.getBirth();
Configuration config = new Configuration().configure();
SessionFactory sf = config.buildSessionFactory();
Session session = sf.openSession();
org.hibernate.Transaction t = session.beginTransaction();
Info info = (Info) session.get(Info.class, Integer.parseInt(id));//先查找到当前映射对象
if (info != null)
{
try
{
Timestamp ts = Timestamp.valueOf(birth);
info.setBirth(ts);// 映射文件中birth为Timestamp类型
session.update(info);
t.commit();
} finally
{
session.close();
}
return mapping.findForward("success");
} else
{
return mapping.findForward("failure");
}
1.附dateTime的格式类型
来源于http://www.cnblogs.com/xvqm00/archive/2009/02/19/1394093.html;
DateTime.ToString()函数有四个重载。一般用得多的就是不带参数的那个了。殊不知,DateTime.ToString(string format)功能更强大,能输出不同格式的日期。1. y代表年份,注意是小写的y,大写的Y并不代表年份。
2. M表示月份。
3. d表示日期,注意D并不代表什么。
4. h或H表示小时,h用的是12小时制,H用的是24小时制。
5. m表示分钟。
6. s表示秒。注意S并不代表什么。
格式 |
输出 |
示例 |
年 |
||
y |
7 |
string yy = DateTime.Now.ToString("y-MM") yy="7-05" |
yy |
07 |
string yy = DateTime.Now.ToString("yy-MM") yy="07-05" |
yyy或更多的y |
1984 |
string yy = DateTime.Now.ToString("yyyy"); yy="2007" |
月 |
||
M |
5. |
string mon = DateTime.Parse("1984-05-09")ToString("yyyy-M") mon = "1984-5" |
MM |
05. |
string mon = DateTime.Parse("1984-05-09")ToString("MM") mon = "05" |
MMM |
如果是中文版的操作系统,则会输出:五月. 如果是英文操作系统,则输入月份前三个字母的简写:May |
string mon = DateTime.Parse("2006-07-01").ToString("MMM") 英文版操作系统:Jul 中文版操作系统:七月 |
MMMM或更多的M |
如果是中文版的操作系统,则会输出:五月. 如果是英文操作系统,则输入月份的全写 |
string mon = DateTime.Parse("2006-07-01").ToString("MMM") 英文版操作系统:July 中文版操作系统:七月 |
日期或星期 |
||
d |
9 |
string dd= DateTime.Parse("1984-05-09")ToString("d") dd= "9"
|
dd |
09 |
string dd= DateTime.Parse("1984-05-09")ToString("dd") dd= "09" |
ddd |
如果是中文版的操作系统,则会输出星期,如星期三。. 如果是英文操作系统,则输出星期的简写:如 Wed |
string dd = DateTime.Parse("2006-07-01").ToString("ddd") 英文版操作系统:Wed 中文版操作系统:星期三 |
dddd或更多的d |
如果是中文版的操作系统,则会输出星期,如星期三。. 如果是英文操作系统,则输出星期:如 Wednesday |
string dd = DateTime.Parse("2006-07-01").ToString("dddd") 英文版操作系统:Wednesday 中文版操作系统:星期三 |
小时 |
||
h |
小时范围:1-12 |
string hh = DateTime.Now.ToString(“h”); hh = 8 |
hh或更多的h |
小时范围:1-12 |
string hh = DateTime.Now.ToString(“hh”); hh = 08 |
H |
小时范围:0-23 |
string hh = DateTime.Now.ToString(“yyyy-H”); hh = 2006-8 |
HH或更多的H |
小时范围:0-23 |
string hh = DateTime.Now.ToString(“yyyy-HH”); hh = 2006-08 string hh = DateTime.Pare(“2006-7-4 18:00:00”).ToString(“yyyy-HH”); hh = 2006-18 |
分钟 |
||
m |
6 |
string mm = DateTime.Now.ToString("yyyy-MM-dd-m"); mm = “2006-07-01-6”; |
mm或更多的m |
06 |
string mm = DateTime.Now.ToString("yyyy-MM-dd-mm"); mm = “2006-07-01-06”; |
秒 |
||
s |
6 |
string mm = DateTime.Now.ToString("yyyy-MM-dd-s"); mm = “2006-07-01-6”; |
ss或更多的s |
06 |
string mm = DateTime.Now.ToString("yyyy-MM-dd-ss"); mm = “2006-07-01-06”; |