- 浏览: 473824 次
- 性别:
- 来自: 南阳
文章分类
最新评论
-
yuanhongb:
这么说来,感觉CGI和现在的JSP或ASP技术有点像啊
cgi -
draem0507:
放假了还这么勤啊
JXL操作Excel -
chenjun1634:
学习中!!
PHP/Java Bridge -
Jelen_123:
好文章,给了我好大帮助!多谢!
hadoop安装配置 ubuntu9.10 hadoop0.20.2 -
lancezhcj:
一直用job
Oracle存储过程定时执行2种方法(转)
将Date类型写入数据库的两种方法
先了解几个类:
1、具体类(和抽象类相对)java.util.Date
2、抽象类java.text.DateFormat 和它的一个具体子类,java.text.SimpleDateFormat
3、抽象类java.util.Calendar 和它的一个具体子类,java.util.GregorianCalendar
具体类可以被实例化, 但是抽象类却不能. 你首先必须实现抽象类的一个具体子类.
************************************
一种将java的日期类型直接转换为SQL的日期类型的方法,比较简单但适用性狭窄,
注意一下例子在jdk下编译没有时间,但在jb和Eclipse下就有时间,不知怎么回事
——————————————
public class a {
public static void main(String[] args) {
java.util.Date now = new Date();
//PreparedStatement类型的setDate方法只接受sql.date类型,所有必须先转换
java.sql.Date sqlnow = new java.sql.Date(now.getTime());
try {
//froName必须放在try中,否则编译不通过,可能froName方法抛出编译时异常了
//经查阅 public static Class forName(String className) throws ClassNotFoundException {...}
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
Connection connection = DriverManager.getConnection("jdbc:microsoft:sqlserver://192.168.0.2:1433;DatabaseName=pubs","sa","");
PreparedStatement ps=connection.prepareStatement("update test set f1=?");
ps.setDate(1,sqlnow);
int i = ps.executeUpdate();
}
catch (Exception ex) {}
}
}
**********************************************************
另一种是将java的date类型通过SimpleDateFormat转换为字符串,再写到sql语句中
-----------------------------------------------------------
import java.sql.*;
import java.text.SimpleDateFormat;
import java.util.Date;
public class a{
public static void main(String[] args) {
//之所以用kk而不用hh是因为kk是24进制的而不虽操作系统设置变动
SimpleDateFormat sdf =new SimpleDateFormat("yyyy-MM-dd kk:mm:ss");
Date now = new Date();
//format()方法的返回值是String型
System.out.println(sdf.format(date));
}}
-----------------------------------------------------
一下是逆操作,将String转换为Date,parse()方法能抛出ParseException异常,所以你必须使用适当的异常处理技术
try{
SimpleDateFormat sbf =new SimpleDateFormat("yyyy-MM-dd kk:mm:ss");
String sdate="2004-05-14 21:29:51";
Date ddate = sbf.parse(sdate);
System.out.println(ddate);
}
catch (Exception ex) { }
**************************************************************
以下是副产品,我们用到的情况比较少
util.date类型
----------------------------------------------
//1年前日期
java.util.Date myDate=new java.util.Date();
long myTime=(myDate.getTime()/1000)-60*60*24*365;
myDate.setTime(myTime*1000);
//明天日期
myDate=new java.util.Date();
myTime=(myDate.getTime()/1000)+60*60*24;
myDate.setTime(myTime*1000);
//两个时间之间的天数
SimpleDateFormat myFormatter = new SimpleDateFormat("yyyy-MM-dd");
java.util.Date date= myFormatter.parse("2003-05-1");
java.util.Date mydate= myFormatter.parse("1899-12-30");
long day=(date.getTime()-mydate.getTime())/(24*60*60*1000);
//加半小时
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
java.util.Date date1 = format.parse("2002-02-28 23:16:00");
long Time=(date1.getTime()/1000)+60*30;
date1.setTime(Time*1000);
String mydate1=formatter.format(date1);
//年月周求日期
SimpleDateFormat formatter2 = new SimpleDateFormat("yyyy-MM F E");
java.util.Date date2= formatter2.parse("2003-05 5 星期五");
SimpleDateFormat formatter3 = new SimpleDateFormat("yyyy-MM-dd");
String mydate2=formatter3.format(date2);
//求是星期几
mydate= myFormatter.parse("2001-1-1");
SimpleDateFormat formatter4 = new SimpleDateFormat("E");
String mydate3=formatter4.format(mydate);
-----------------------------------------------
now.getYear();//实际年份减去1900,如果构造函数为Date(2008,2,25)则不减1900,如果构造函数为Date(17009456745)或者setTime(17009456745)还减1900
now.getMonth();//实际月份减去1,如果构造函数为Date(2008,2,25)则不减1,如果构造函数为Date(17009456745)或者setTime(17009456745)还减1900
now.getDay();//*,原来是取星期,不知sun公司是咋想的,脑袋进水了。
now.getDate();//这才是取1~31之间的日
now.getHours();//24进制的小时
now.getMinutes();//分
now.getSeconds();//秒
now.getTime();//返回1970年1月1日00:00:00起至今的毫秒数
now.setTime(long time);//真实日期为1970年1月1日午夜+time毫秒
*************************************
日历类型的子类GregorianCalendar类型
构造函数GregorianCalendar(int year, int month, int date) ,无参数为但前时间
注意月份的表示,一月是0,二月是1,以此类推。因此最好使用单词而不是使用数字来表示月份。父类Calendar使用常量来表示月份:JANUARY, FEBRUARY...
所以1903年12月17日可以写为
GregorianCalendar aaa = new GregorianCalendar(1903, Calendar.DECEMBER, 17)
GregorianCalendar aaa = new GregorianCalendar(1903, 11, 17);
---------------------------------------
import java.util.Date;
import java.text.DateFormat;
import java.util.GregorianCalendar;
public class a {
public static void main(String[] args) {
DateFormat df = DateFormat.getDateInstance(DateFormat.FULL);
GregorianCalendar gca = new GregorianCalendar();
//getTime()方法是将GregorianCalendar对象转换为Date对象
gca.setTime(new Date());
System.out.println("系统时间: " +df.format(gca.getTime()));
//set 方法能够让我们通过简单的设置星期中的哪一天这个域来将我们的时间调整为星期五.注意到这里我们使用了常量 DAY_OF_WEEK 和 FRIDAY来增强代码的可读性.
//如果当前为星期五时间不变
gca.set(GregorianCalendar.DAY_OF_WEEK, GregorianCalendar.FRIDAY);
System.out.println("下一个星期五: " + df.format(gca.getTime()));
//add 方法让我们能够在日期上加上数值.
gca.add(GregorianCalendar.DAY_OF_MONTH, 8);
System.out.println("再加8天: " + df.format(gca.getTime()));
//get方法取对象中的一部分
int i = gca.get(GregorianCalendar.DAY_OF_MONTH);
System.out.println(i);
}}
***************************************
Locale类:(java.util.Locale)
-----------------------------------
import java.util.Locale;
public class a {
public static void main(String[] args) {
Locale localeEN = new Locale("en", "US");
//另一实例化方法=locale.ENGLISH;
System.out.println("Display Name: " +localeEN.getDisplayName());
System.out.println("Country: " + localeEN.getCountry());
System.out.println("Language: " + localeEN.getLanguage());
Locale localeFR = new Locale("fr", "FR");
System.out.println("\nDisplay Name: " +localeFR.getDisplayName());
System.out.println("Country: " + localeFR.getCountry());
System.out.println("Language: " + localeFR.getLanguage());
// 用三种语言显示本机语言、英语、法语
System.out.println("用本语显示DisplayName: "+ localeEN.getDisplayName());
System.out.println("用英语显示DisplayName:"+ localeEN.getDisplayName(localeEN ));
System.out.println("用法语显示DisplayName:"+ localeEN.getDisplayName(localeFR ));
}
}
*****************************************************
把Date以不同地域的格式显示:java.text.DateFormat
getDateTimeInstance()的前两个参数分别代表日期风格和时间风格,取值为SHORT, MEDIUM, LONG, 和 FULL
getDateInstance()方法:Java还提供了几个选择日期格式,你可以通过使用重载的getDateInstance(int style)获得。出于方便的原因,DateFormat提供了几种预置的常量,你可以使用这些常量参数SHORT, MEDIUM, LONG, 和FULL
-----------------------------------------------
import java.util.Locale;
import java.text.DateFormat;
import java.util.Date;
public class a {
public static void main(String[] args) {
Date now=new Date();
Locale localeCN=Locale.CHINA;
DateFormat df=DateFormat.getDateTimeInstance(DateFormat.FULL,DateFormat.FULL,localeCN);
System.out.println(df.format(now));
//结果为2004年5月17日 星期一 下午16时38分32秒 CST
}}
******************************************************
时区 java.util.TimeZone
--------------------------------------------------------
import java.util.TimeZone;
public class a {
public static void main(String[] args) {
// 系统时区
TimeZone timeZoneFL = TimeZone.getDefault();
System.out.println("\n" + timeZoneFL.getDisplayName());
System.out.println("与GMT相差的微秒数: " + timeZoneFL.getRawOffset());
System.out.println("Uses daylight saving: " + timeZoneFL.useDaylightTime());
//通过“时区字符串ID”指定时区
TimeZone timeZoneLondon = TimeZone.getTimeZone("Europe/London");
System.out.println("\n" + timeZoneLondon.getDisplayName());
System.out.println("与GMT相差的微秒数: " + timeZoneLondon.getRawOffset());
System.out.println("采用夏令时: " + timeZoneLondon.useDaylightTime());
}}
-------------------------------------------------------
显示结果:
中国标准时间
与GMT相差的微秒数:
Uses daylight saving:false;
格林威治时间
与GMT相差的微秒数:
采用夏令时: true
********************************************************
显示不同时区的时间 df.setTimeZone(TimeZone kkk)
----------------------------------------------------
public class a {
public static void main(String[] args) {
Date now=new Date();
DateFormat df=DateFormat.getDateTimeInstance(DateFormat.FULL,DateFormat.FULL);
TimeZone timezoneCH=TimeZone.getTimeZone("China/BeiJing");
df.setTimeZone(timezoneCH);
System.out.println("北京时间"+df.format(now));
TimeZone timezoneFR=TimeZone.getTimeZone("Europe/Paris");
df.setTimeZone(timezoneFR);
System.out.println("巴黎时间"+df.format(now));
}}
-----------------------------------------------------
结果如下:
北京时间2004年5月17日 星期一 上午09时31分34秒 GMT
巴黎时间2004年5月17日 星期一 上午11时31分34秒 CEST
发表评论
-
mysql 定时任务
2015-11-03 09:57 735定时任务 查看event是否开启: show variabl ... -
tomcat服务器大数量数据提交Post too large解决办法
2015-10-29 11:05 706tomcat默认设置能接收HTTP POST请求的大小最大 ... -
Tomcat启动内存设置
2015-10-20 15:40 639Tomcat的启动分为startupo.bat启动和注册为w ... -
Java串口包Javax.comm的安装
2015-10-12 16:32 656安装个java的串口包安装了半天,一直找不到串口,现在终于搞 ... -
在 Java 应用程序中访问 USB 设备
2015-10-10 17:49 919介绍 USB、jUSB 和 JSR- ... -
自动生成Myeclipse7.5注册码
2015-08-11 16:46 438package com.rbt.action; impor ... -
mysql定时器
2015-08-04 14:01 5655.1以后可以使用 ALTER EVENT `tes ... -
oracle安装成功后,更改字符集
2015-07-23 11:53 600看了网上的文章,乱码有以下几种可能 1. 操作系统的字符集 ... -
利用html5调用本地摄像头拍照上传图片
2015-05-18 09:36 2574测试只有PC上可以,手机上不行 <!DOCTYPE ... -
必须Mark!最佳HTML5应用开发工具推荐
2015-05-15 22:50 930摘要:HTML5自诞生以来,作为新一代的Web标准,越来 ... -
Mobl试用二
2015-05-13 14:28 605最近有空又看了一下Mobl的一些说语法,备忘一下: 1 ... -
Nginx配置文件详细说明
2015-05-08 19:58 577在此记录下Nginx服务器nginx.conf的配置文件说明 ... -
axis调用cxf
2015-04-23 13:51 5191、写address时不用加?wsdl Service s ... -
mysql 获取第一个汉字首字母
2015-03-18 17:48 596select dmlb, dmz, dmsm1, CHAR ... -
failed to install Tomcat6 service解决办法
2015-02-12 09:20 500最近我重装了一下tomcat 6.0,可不知为什么,总是安装 ... -
tomcat 分配java内存
2015-02-11 10:37 561//首先检查程序有没有限入死循环 这个问题主要还是由这个问 ... -
[Android算法] Android蓝牙开发浅谈
2014-12-15 15:27 630对于一般的软件开发人 ... -
Android 内存溢出解决方案(OOM) 整理总结
2014-11-21 10:12 711原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出 ... -
《HTML5从入门到精通》中文学习教程 PDF
2014-11-19 21:26 1094HTML5 草案的前身名为Web Applications ... -
mysql字符串函数(转载)
2014-11-13 12:05 537对于针对字符串位置的操作,第一个位置被标记为1。 AS ...
相关推荐
java 日期操作汇总包含date calendar 相互转换
经典示例Java日期操作类 经典示例Java日期操作类.pdf
java日期操作类 操作java日期 替换simplatedateformate
java日期操作技术大全,比如: 取得指定日期的下一个星期的最后一天 取得指定日期的所处月份的第一天 日期加1天 java.sql,Date()和java.util.Date(); 定时器 ...........很详细,很全面。
java日期操作方式
java日期的使用介绍和具体实现的示例 (适合新手) 1.计算某一月份的最大天数 Calendar time=Calendar.getInstance(); time.clear(); time.set(Calendar.YEAR,year); time.set(Calendar.MONTH,i-1);//注意,Calendar...
这是一个java操作日期的接口,希望大家提意见和建议,一起分享继续壮大这个接口的功能。 (peerless_jimmy@msn.com QQ:417830008)
java日期类型操作工具类
全面的日期开发工具类,对日期进行各种转换,应用于大部分项目的开发需求。
老师详细讲解的...很时用,时候java初学者
日期的计算,图书馆图书超期天数,日期加减法、date与String的转换
主要为大家详细介绍了java日期操作工具类,包括获取指定日期、日期转换、相隔天数等操作,感兴趣的小伙伴们可以参考一下
NULL 博文链接:https://mr-lili-1986-163-com.iteye.com/blog/2165773
非常有用的Java日期时间操作函数代码一览 网上找到的,感觉不错。
Java Date操作大全 例举了所有java 日期操作
Java 日期比较工具类 各种日期操作及计算( 获取两个日期 间隔天数 间隔月数 格式化日期 )
主要介绍了Java日期操作类常见用法,结合实例形式分析了java针对日期时间的获取、转换常见操作技巧,需要的朋友可以参考下
本文给大家介绍java中常见的日期操作,日期取值、日期转换、日期加减、日期比较,对java日期操作相关知识感兴趣的朋友一起学习吧
详细介绍了Java8日期时间相关的api,列举了一些常用的方法,包含java.time、java.time.temporal、java.time.format包下的类和接口操作