java日期处理SimpleDateFormat等
1.mysql数据库中有这样一个表:
mysql> select * from test_table;
+----------+---------------------+
| username | date |
+----------+---------------------+
| chengyu | 1990-10-04 00:00:00 |
| chengpei | 1980-09-12 12:23:01 |
+----------+---------------------+
其中date字段是datetime类型的;从数据库中将date字段取出来:
public static void main(String[] args) throws Exception{
Class.forName("com.mysql.jdbc.Driver");
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test_demo?user=root&password=root");
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("select * from test_table");
while(rs.next()){
Date date = rs.getDate("date");
System.out.println(date);
}
}
Date取出来是java.sql.Date类型的;打印但是Date的toString()方法;显示如下:
1990-10-04
1980-09-12
现在将date取出来,转化为字符串,再次打印出来:
public static void main(String[] args) throws Exception{
Class.forName("com.mysql.jdbc.Driver");
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test_demo?user=root&password=root");
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("select * from test_table");
while(rs.next()){
Date date = rs.getDate("date");
String date2 = new SimpleDateFormat("yyyy年MM月dd日").format(date);
System.out.println(date2);
}
}
打印结果如下:
1990年10月04日
1980年09月12日
2.从数据库中取出日期和时间:
在数据库中有这样的表:
public static void main(String[] args) throws Exception{
Class.forName("com.mysql.jdbc.Driver");
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test_demo?user=root&password=root");
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("select * from test_table");
while(rs.next()){
/*
* java.sql.Date只能精确到年月日; Date类型只能够代表日期;
* 这里采用java.sql.Timestamp;
* 要取出毫秒来,创建数据库字段date timestamp(3) 意思是保留3为毫秒数
*/
Timestamp date = rs.getTimestamp("date");
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
//拿到年份:
int year = calendar.get(Calendar.YEAR);
//拿到月份:
int month = calendar.get(Calendar.MONTH) + 1;
//拿到日:
int day = calendar.get(Calendar.DAY_OF_MONTH);
//拿到时:
int hour_24 = calendar.get(Calendar.HOUR_OF_DAY);
int hour_12 = calendar.get(Calendar.HOUR);
//拿到分:
int minute = calendar.get(Calendar.MINUTE);
//拿到秒:
int second = calendar.get(Calendar.SECOND);
//拿到毫秒:
int millisecond = calendar.get(Calendar.MILLISECOND); System.out.println("日期和时间:"+ date);
System.out.println("年: " + year);
System.out.println("月: " + month);
System.out.println("日: " + day);
System.out.println("时(24): " + hour_24);
System.out.println("时(12): " + hour_12);
System.out.println("分: " + minute);
System.out.println("秒: " + second);
System.out.println("毫秒: " + millisecond);
}
}
打印如下:
日期和时间:1990-10-04 23:30:55.86
年: 1990
月: 10
日: 4
时(24): 23
时(12): 11
分: 30
秒: 55
毫秒: 860
2)resultSet.getTimestamp("date")后,将这个时间转化为String:
数据库中已存在的数据:
public static void main(String[] args) throws Exception{
Class.forName("com.mysql.jdbc.Driver");
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test_demo?user=root&password=root");
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("select date from test_table");
while(rs.next()){
Timestamp timestamp = rs.getTimestamp("date");
String strdate = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS").format(timestamp);
System.out.println(strdate);
}
}
打印出来:
1990-10-04 00:00:00.000
1989-10-04 23:59:55.086
3)将一个String类型的字符串存进数据库, 以java.sql.Date类型存进去:
public static void main(String[] args) throws Exception{
Class.forName("com.mysql.jdbc.Driver");
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test_demo?user=root&password=root");
String sql = "insert into test_table values(?, ?)";
PreparedStatement pstmt = conn.prepareStatement(sql);
/*
* 将一个String类型的时间存储到数据库
* java.sql.Date和java.util.Date之间可以互相转化
* new SimpleDateFormat("yyyy-MM-dd hh:mm:ss") HH-24小时 hh-12小时
* 不过插入数据库后,由于是sql Date类型的,只能存储日期,就没有时间
*/
String strDate = "1990-10-04 23:30:55.86";
java.util.Date date = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS").parse(strDate);
java.sql.Date date2 = new java.sql.Date(date.getTime());
pstmt.setString(1, "cy");
pstmt.setDate(2, date2);
pstmt.executeUpdate();
}
数据库显示:
4)将String类型的。连带时间分钟。毫秒一起存进数据库:
public static void main(String[] args) throws Exception{
Class.forName("com.mysql.jdbc.Driver");
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test_demo?user=root&password=root");
String sql = "insert into test_table values(?, ?)";
PreparedStatement pstmt = conn.prepareStatement(sql);
/*
* java.sql.Timestamp/java.sql.Date都是 java.util.Date的子类;
*/
String strDate = "1989-10-04 23:59:55.86";
java.util.Date date = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS").parse(strDate);
Timestamp date2 = new Timestamp(date.getTime());
pstmt.setString(1, "cp");
pstmt.setTimestamp(2, date2);
pstmt.executeUpdate();
}
java日期处理SimpleDateFormat等的更多相关文章
- Java日期转换SimpleDateFormat格式大全(转)
24小时制时间显示: public class Datetime { public static void main(String args[]){ java.util.Date current=ne ...
- java 日期格式化-- SimpleDateFormat 的使用。字符串转日期,日期转字符串
日期和时间格式由 日期和时间模式字符串 指定.在 日期和时间模式字符串 中,未加引号的字母 'A' 到 'Z' 和 'a' 到 'z' 被解释为模式字母,用来表示日期或时间字符串元素.文本可以使用单引 ...
- java日期格式大全 format SimpleDateFormat(转)
java日期格式大全 format SimpleDateFormat /** * 字符串转换为java.util.Date<br> * 支持格式为 yyyy.MM.dd G ...
- java中使用SimpleDateFormat实现字符串和日期的相互转换
java中使用SimpleDateFormat实现字符串和日期的相互转换 import java.text.ParseException; import java.text.SimpleDateFor ...
- [转]Java日期时间使用总结
原文地址:http://lavasoft.blog.51cto.com/62575/52975/ 一.Java中的日期概述 日期在Java中是一块非常复杂的内容,对于一个日期在不同的语言国别环境中 ...
- java日期操作大全
摘自(http://www.blogjava.net/i369/articles/83483.html) java日期操作 大全 先来一个: 取得指定月份的第一天与取得指定月份的最后一天 http ...
- java日期处理总结
Java日期时间使用总结 一.Java中的日期概述 日期在Java中是一块非常复杂的内容,对于一个日期在不同的语言国别环境中,日期的国际化,日期和时间之间的转换,日期的加减运算,日期的展示格式 ...
- Java日期时间使用总结
一.Java中的日期概述 日期在Java中是一块非常复杂的内容,对于一个日期在不同的语言国别环境中,日期的国际化,日期和时间之间的转换,日期的加减运算,日期的展示格式都是非常复杂的问题. 在J ...
- Java 日期时间
Java 日期时间 标签 : Java基础 Date java.util.Date对象表示一个精确到毫秒的瞬间; 但由于Date从JDK1.0起就开始存在了,历史悠久,而且功能强大(既包含日期,也包含 ...
随机推荐
- 第三个Sprint冲刺第八天
讨论地点:宿舍 讨论成员:邵家文.李新.朱浩龙.陈俊金 讨论问题:做最后的工作
- 项目中创建单元测试—VS2012
我们在每个项目的开发过程中,开发完一个功能,自己首先需要测试一下,VS提供了很方便的测试功能,可以很容易的创建单元测试,但是在VS2012中类名上点击右键没有『创建单元测试』这个菜单,需要先进行设置一 ...
- Windows Server 2012 没有远程桌面授权服务器可以提供许可证,远程会话被中断
今天在登录公司内部的服务器的时候,无法进行远程访问. 弹出错误信息:没有远程桌面授权服务器可以提供许可证,远程会话被中断 经过网上的寻找,原来是server 2012 远程登录只提供120天的使用期限 ...
- PHP 输入流 php://input
在使用xml-rpc的时候,server端获取client数据,主要是通过php输入流input,而不是$_POST数组.所以,这里主要探讨php输入流php://input 对一php://in ...
- Linux运维人员如何学习python编程
Linux运维人员如何学习python编程 从不会写代码,到自己独立能写代码解决问题 .这个问题很重要!盲目学习所谓的项目,最后 还是不会自己写代码解决问题.首先解决了独立能写代码解决问题,再通过项目 ...
- 【转载】Restarting an analysis in ANSYS
原文地址:http://blog.sina.com.cn/s/blog_4b764640010168ru.html 这是自己最近做的一个例子,一是为了感谢okok论坛给与我的很大的帮助,二是起到抛 ...
- SQL-server的事务,视图和索引
(1): A: B: C: D: 选错误A,D 因为bc不对所以选AD,A:关系数据库中,数据是保存在数据页中的,而索引则是存储在索引页中.因此,数据表中的索引并非越多越好,一个表中如果有大量的索引 ...
- Kindle DXG和Win10 64bits无法连接的问题
直入主题:换根数据线. 不要觉得答案简单,我就是不负责任的在调侃. 在得出这条答案之前,我的思路是,既然插上线以后,kindle的充电指示灯会亮,那就应该不是线的问题. 所以实际的过程是我安装了驱动之 ...
- Lua Serial/Serialize/Serializer/Serializing 序列化/反序列化
第一篇 有点内容的.. 支持 表/函数/数值/布尔/字符串 做 键.值 支持 循环/嵌套 支持 元表(支持弱表分析) 支持 表被任意数量.位置引用 支持 扩展引用外部 支持 格式化输出 支持 嵌套优化 ...
- C#中String转int问题
String转int主要有四种方法 1. int.Parse()是一种类容转换:表示将数字内容的字符串转为int类型. 如果字符串为空,则抛出ArgumentNullException异常: 如果字符 ...