Java字符串,日期的格式化
2013-03-28 03:21
471 查看
JSP中常用的格式化包括:
1. 字符串的格式化
2. 字符串和HTML显示内容的格式化
3. 日期的格式化
一、字符串的格式化
字符串处理是项目中使用最频繁的,Java中提供了二种格式化字符串的方法,JDBC还提供了一种问号参数类似于格式化SQL语句。
1. 使用String.format()方法格式化字符串
语法格式为:public static String format(String format, Object... args)
其中字符串中的占位符(与C语言相同)为:%d -- 整数 %f --小数 %s -- 字符串
格式化时按占位符的顺序使用变量的值替换。如有重复值,需要写两个%d,赋值两个
例如:
String
str = "select top %d * from tb_user";
str
= String.format(str, 10);
2. 使用MessageFormat格式化字符串。
类MessageFormat来自java.text包
占位符:{0}、{1} 或者 {1[, 格式类型[,格式样式]]}
格式类型有:number, date, time, choice
格式样式详情请参见:JDK帮助。
例如:
int planet = 7;
String event = " disturbance ";
String result = MessageFormat.format(
"At {1,time} on {1,date}, there was {2} on planet {0,number,integer}.",
planet, new Date(), event);
输出为:
At
12:30 PM on Jul 3, 2053, there was disturbance on planet 7.
3. SQL语句的问号参数
使用?为占位符,顺序从1开始。
在创建PreparedStatement对象执行SQL语句前,为所有的问号设置参数值。
语句为:
private void bindParameter(Object... params){
if(params
!= null){//此处使用可变参数,如果没有参数,则为null,否则为参数数组,类型为Object
int
i = 1; //参数序号从1开始
for(Object
o : params){
if(o
== null){
pre.setNull(i,Types.VARCHAR); //设置数据库的字段值为NULL
}else
if(o instanceof java.util.Date){ //o如果为java.util.Date的对象,返回true
java.util.Date
dd = (java.util.Date)o;
java.sql.Date
sd = new java.sql.Date(dd.getTime());
pre.setDate(i,
sd);
}else{
pre.setObject(i,
o);
}
i++;
}
}
}
4.SQL类型的时间转Java时间,
package com.accp.dao;
import java.sql.Timestamp;
import java.util.Date;
public class DateTime {
public Date dateToJava(Timestamp date){
Date javaDate=new Date(date.getTime());
return javaDate;
}
}
二、字符串与HTML字符内容转换
有些特殊字符在Java中可以随便输出,但是在HTML页面中就不能够正常显示了。
这个时候我们需要对这些特殊字符做以个转换。 如 < 转换成 <
方法如下:
public String htmlSetChange(String source){
String
changeStr="";
changeStr=source.replace("&","&");
changeStr=changeStr.replace("
"," ");
changeStr=changeStr.replace("<","<");
changeStr=changeStr.replace(">",">");
changeStr=changeStr.replace("\r\n","<br>");
return
changeStr;
}
二、日期格式化处理
JSP项目中,为什么需要日期格式化处理呢?
主要原因是Java中有两个Date类,一个为java.util.Date,另一个为java.sql.Date。
它们两者的关系是:java.util.Date是java.sql.Date的父类。
我们Java中程序中常用的java.util包的Date,但是数据库中使用的为java.sql包的,所有当我们把日期存入数据库时就会发生问题,因为父类对象不能够直接赋值给子类引用。
提供的解决方案有:
a. 使用SQL语句插入数据时,可直接取数据库时间。 用getdate()
b. 如果需要把已有的Date对象存入数据库中,不需人工转换,强制转换不行。
目前常用方法为:
1.
java.util.Date
dd = new java.util.Date();
java.sql.Date
sdate = new java.sql.Date(dd.getTime()); //采用这种方式转换
2.
java.util.Date
dd = new java.util.Date();
//创建日期格式化对象
SimpleDateFormat
sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//格式化当前日期
String
sdate = sdf.format(dd);
//设置日期--因为SQL
Server中字符串可以和日期类型自动转换。
pre.setObject(i++,
sdate);
//有时分秒,但不兼容其它数据库,只适用于SQL
Server数据库。
c. 读取数据库中的日期时,可使用getDate(),不过此时损失时分秒
d. 可使用getString获取日期类型,再把字符串转成创建为java.util.Date类型对象
把字符串转成日期类型时,需要使用DateFormat类。来自java.text包
这个类的构造方法为protected类型,所以我们需要使用静态方法获取类的实例。
常用三个方法:
static DateFormat getDateInstance() 只包括日期,不带时间。
static DateFormat getDateTimeInstance() 包括日期和时间
static DateFormat getTimeInstance() 只包括时间部分
它还有其它的重载方法,比如带风格和时区参数的
获取格式化对象后,在调用Date parse(String
source) 方法得到日期对象。
例如:
Date
d = DateFormat.getDateTimeInstance().parse("2009-08-08 20:08:08");
//参数为符合日期规则的字符串
System.out.println(d.getDate());
如果要把日期类型格式化成字符串,使用java.text.SimpleDateFormat类
例如:
Date d = new Date();
//创建格式化对象实例,并带日期格式字符串
SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss.SSS");
String s = sdf.format(d);
System.out.println(s);
其它详细内容:请参见JDK帮助文档。
http://blog.csdn.net/shl7765856/article/details/7536910
1. 字符串的格式化
2. 字符串和HTML显示内容的格式化
3. 日期的格式化
一、字符串的格式化
字符串处理是项目中使用最频繁的,Java中提供了二种格式化字符串的方法,JDBC还提供了一种问号参数类似于格式化SQL语句。
1. 使用String.format()方法格式化字符串
语法格式为:public static String format(String format, Object... args)
其中字符串中的占位符(与C语言相同)为:%d -- 整数 %f --小数 %s -- 字符串
格式化时按占位符的顺序使用变量的值替换。如有重复值,需要写两个%d,赋值两个
例如:
String
str = "select top %d * from tb_user";
str
= String.format(str, 10);
2. 使用MessageFormat格式化字符串。
类MessageFormat来自java.text包
占位符:{0}、{1} 或者 {1[, 格式类型[,格式样式]]}
格式类型有:number, date, time, choice
格式样式详情请参见:JDK帮助。
例如:
int planet = 7;
String event = " disturbance ";
String result = MessageFormat.format(
"At {1,time} on {1,date}, there was {2} on planet {0,number,integer}.",
planet, new Date(), event);
输出为:
At
12:30 PM on Jul 3, 2053, there was disturbance on planet 7.
3. SQL语句的问号参数
使用?为占位符,顺序从1开始。
在创建PreparedStatement对象执行SQL语句前,为所有的问号设置参数值。
语句为:
private void bindParameter(Object... params){
if(params
!= null){//此处使用可变参数,如果没有参数,则为null,否则为参数数组,类型为Object
int
i = 1; //参数序号从1开始
for(Object
o : params){
if(o
== null){
pre.setNull(i,Types.VARCHAR); //设置数据库的字段值为NULL
}else
if(o instanceof java.util.Date){ //o如果为java.util.Date的对象,返回true
java.util.Date
dd = (java.util.Date)o;
java.sql.Date
sd = new java.sql.Date(dd.getTime());
pre.setDate(i,
sd);
}else{
pre.setObject(i,
o);
}
i++;
}
}
}
4.SQL类型的时间转Java时间,
package com.accp.dao;
import java.sql.Timestamp;
import java.util.Date;
public class DateTime {
public Date dateToJava(Timestamp date){
Date javaDate=new Date(date.getTime());
return javaDate;
}
}
二、字符串与HTML字符内容转换
有些特殊字符在Java中可以随便输出,但是在HTML页面中就不能够正常显示了。
这个时候我们需要对这些特殊字符做以个转换。 如 < 转换成 <
方法如下:
public String htmlSetChange(String source){
String
changeStr="";
changeStr=source.replace("&","&");
changeStr=changeStr.replace("
"," ");
changeStr=changeStr.replace("<","<");
changeStr=changeStr.replace(">",">");
changeStr=changeStr.replace("\r\n","<br>");
return
changeStr;
}
二、日期格式化处理
JSP项目中,为什么需要日期格式化处理呢?
主要原因是Java中有两个Date类,一个为java.util.Date,另一个为java.sql.Date。
它们两者的关系是:java.util.Date是java.sql.Date的父类。
我们Java中程序中常用的java.util包的Date,但是数据库中使用的为java.sql包的,所有当我们把日期存入数据库时就会发生问题,因为父类对象不能够直接赋值给子类引用。
提供的解决方案有:
a. 使用SQL语句插入数据时,可直接取数据库时间。 用getdate()
b. 如果需要把已有的Date对象存入数据库中,不需人工转换,强制转换不行。
目前常用方法为:
1.
java.util.Date
dd = new java.util.Date();
java.sql.Date
sdate = new java.sql.Date(dd.getTime()); //采用这种方式转换
2.
java.util.Date
dd = new java.util.Date();
//创建日期格式化对象
SimpleDateFormat
sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//格式化当前日期
String
sdate = sdf.format(dd);
//设置日期--因为SQL
Server中字符串可以和日期类型自动转换。
pre.setObject(i++,
sdate);
//有时分秒,但不兼容其它数据库,只适用于SQL
Server数据库。
c. 读取数据库中的日期时,可使用getDate(),不过此时损失时分秒
d. 可使用getString获取日期类型,再把字符串转成创建为java.util.Date类型对象
把字符串转成日期类型时,需要使用DateFormat类。来自java.text包
这个类的构造方法为protected类型,所以我们需要使用静态方法获取类的实例。
常用三个方法:
static DateFormat getDateInstance() 只包括日期,不带时间。
static DateFormat getDateTimeInstance() 包括日期和时间
static DateFormat getTimeInstance() 只包括时间部分
它还有其它的重载方法,比如带风格和时区参数的
获取格式化对象后,在调用Date parse(String
source) 方法得到日期对象。
例如:
Date
d = DateFormat.getDateTimeInstance().parse("2009-08-08 20:08:08");
//参数为符合日期规则的字符串
System.out.println(d.getDate());
如果要把日期类型格式化成字符串,使用java.text.SimpleDateFormat类
例如:
Date d = new Date();
//创建格式化对象实例,并带日期格式字符串
SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss.SSS");
String s = sdf.format(d);
System.out.println(s);
其它详细内容:请参见JDK帮助文档。
http://blog.csdn.net/shl7765856/article/details/7536910
相关文章推荐
- Java 字符串对日期的格式化
- java中字符串转换为日期并且格式化
- java 格式化日期字符串
- java 日期格式化-- SimpleDateFormat 的使用。字符串转日期,日期转字符串
- Java字符串,日期的格式化
- java_日期和时间字符串格式化
- JAVA中String.format的用法 格式化字符串,格式化数字,日期时间格式化,
- Java字符串_日期_数字格式化输出
- java 日期格式化 字符串<->日期
- Java获取当前时间年月日、时间格式化打印、字符串转日期
- Java字符串,日期的格式化
- Java 把日期时间字符串 格式化为Date对象
- Java中Calendar类的简单使用方法,以及日期格式化的方法,字符串日期格式的验证
- android开发过程中将json日期字符串,转换成JAVA中Date类型格式化字符串
- Java字符串,日期的格式化
- Java中日期格式化成字符串和字符串解析成日期对象工具类
- JAVA中数字、日期、字符串的格式化输出
- Java 日期字符串YYYYMMDDHHMISS 格式化为自然语言日期(xxxx年xx月xx日xx时xx分)
- Java格式化日期、时间、数字、字符串
- java 日期格式化-- SimpleDateFormat 的使用。字符串转日期,日期转字符串