simpledateformat用法,java SimpleDateFormat 如何插入其它字符
simpledateformat用法,java SimpleDateFormat 如何插入其它字符详细介绍
本文目录一览: java 中simpleDateFormat 格式化时间的方法
请参照一下测试代码:
import java.text.SimpleDateFormat;import java.util.Date;public class Test { public static void main(String []args){ SimpleDateFormat dateformat1=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss E"); String a1=dateformat1.format(new Date()); System.out.println("时间2:"+a1); System.out.println(new Date().getYear()+1900); SimpleDateFormat dateformat2=new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒 E "); String a2=dateformat2.format(new Date()); System.out.println("时间2:"+a2); }}
SimpleDateFormat dateformat1=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss E");
String a1=dateformat1.format(new Date());
System.out.println("时间:"+a1);
执行结果:
时间:2006-12-21 14:40:59 星期四
SimpleDateFormat dateformat2=new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒 E ");
String a2=dateformat2.format(new Date());
System.out.println("时间:"+a2);
执行结果:
时间:2006年12月21日 14时40分59秒 星期四
java中SimpleDateFormat的format()方法的使用详解:
public class SimpleDateFormat extends DateFormat
SimpleDateFormat 是一个以国别敏感的方式格式化和分析数据的具体类。 它允许格式化 (date -> text)、语法分析 (text -> date)和标准化。
SimpleDateFormat 允许以为日期-时间格式化选择任何用户指定的方式启动。 但是,希望用 DateFormat 中getTimeInstance、 getDateInstance 或 getDateTimeInstance 创建一个日期-时间格式化程序。 每个类方法返回一个以缺省格式化方式初始化的日期/时间格式化程序。 可以根据需要用 applyPattern 方法修改格式化方式。
SimpleDateFormat函数的继承关系:
java.lang.Object
|
+----java.text.Format
|
+----java.text.DateFormat
|
+----java.text.SimpleDateFormat
举例如下:
import java.text.*;
import java.util.Date;
/**
SimpleDateFormat函数语法:
G 年代标志符
y 年
M 月
d 日
h 时 在上午或下午 (1~12)
H 时 在一天中 (0~23)
m 分
s 秒
S 毫秒
E 星期
D 一年中的第几天
F 一月中第几个星期几
w 一年中第几个星期
W 一月中第几个星期
a 上午 / 下午 标记符
k 时 在一天中 (1~24)
K 时 在上午或下午 (0~11)
z 时区
*/
public class FormatDateTime {
public static void main(String[] args) {
SimpleDateFormat myFmt=new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒");
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年MM月dd日 HH时mm分ss秒 E ");
SimpleDateFormat myFmt4=new SimpleDateFormat(
"一年中的第 D 天 一年中第w个星期 一月中第W个星期 在一天中k时 z时区");
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时24分27秒
04/12/16 17:24
2004-12-16 17:24:27
2004年12月16日 17时24分27秒 星期四
一年中的第 351 天 一年中第51个星期 一月中第3个星期 在一天中17时 CST时区
16 Dec 2004 09:24:27 GMT
2004-12-16 17:24:27
Thu Dec 16 17:24:27 CST 2004
下面是个JavaBean:
public class FormatDateTime {
public static String toLongDateString(Date dt){
SimpleDateFormat myFmt=new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒 E ");
return myFmt.format(dt);
}
public static String toShortDateString(Date dt){
SimpleDateFormat myFmt=new SimpleDateFormat("yy年MM月dd日 HH时mm分");
return myFmt.format(dt);
}
public static String toLongTimeString(Date dt){
SimpleDateFormat myFmt=new SimpleDateFormat("HH mm ss SSSS");
return myFmt.format(dt);
}
public static String toShortTimeString(Date dt){
SimpleDateFormat myFmt=new SimpleDateFormat("yy/MM/dd HH:mm");
return myFmt.format(dt);
}
public static void main(String[] args) {
Date now=new Date();
System.out.println(FormatDateTime.toLongDateString(now));
System.out.println(FormatDateTime.toShortDateString(now));
System.out.println(FormatDateTime.toLongTimeString(now));
System.out.println(FormatDateTime.toShortTimeString(now));
}
}
调用的main 测试结果:
2015年6月4日 12时38分26秒 星期四
04年12月16日 17时38分
17 38 26 0965
04/12/16 17:38
Java中怎么把字符串转换成日期格式啊
方法一:
public static void main(String[] args) throws Exception{
Date date = new SimpleDateFormat("yyyy-MM-dd").parse("2005-06-09");
String now = new SimpleDateFormat("yyyy年MM月dd日").format(date);
System.out.println(now);
}
输出结果:2005年06月09日
方法二:
public class bb {
public static void main(String[] args) {
// TODO Auto-generated method stub
SimpleDateFormat df = new SimpleDateFormat("yyyyMMddhhmmss");
String dateString = "20071128175545";
try {
Date date = df.parse(dateString);
System.out.println(df.format(date));
} catch (Exception ex) {
System.out.println(ex.getMessage());
}
}
}
扩展资料:
Java指定了一些可访问的修饰符如:private、protected、public,任何方法或变量都可以声明为public,Java可以从该类之外的地方访问。因为main方法是公共的,JVM就可以轻松的访问执行它。
在main里面args[]就是两个长度的数组:value1存在args[0]中,value2存在args[1]中。
args[0]存储的是命令,其后才是参数。
String args[ ]或者String[ ] args表示给主方法传一个字符串数组。
而args是一个字符串数组的变量名,不是关键字,是arguments的缩写,只是一个默认名,一般都习惯性照写。
例如:
class Example{
public static void main(String args[ ]){
System.out.println("This is a simple Java program.");
}
}
参考资料来源:百度百科—args[ ]
需要输出:2005年06月09日,那么需要注意的有两点:
第一,把你给定的日期格式的字符串转换为日期类型的值,要利用 new SimpleDateFormat("yyyy-MM-dd"); 注意这里的字符串值就可以任意给定了,但是转换时要注意日期格式的对应!!!
第二,再利用第一步得到的日期类型的值转换为你需要的值,需新建一个 new SimpleDateFormat("yyyy年MM月dd日");
详细代码如图:
先用parse转成date型,再用format转成string。
public static void main(String[] args) throws Exception{
Date date = new SimpleDateFormat("yyyy-MM-dd").parse("2005-06-09");
String now = new SimpleDateFormat("yyyy年MM月dd日").format(date);
System.out.println(now);
}
import java.sql.Date;
Date date = Date.valueOf(str);
//str为目标字符串,如2006-10-05,或20061005,有些格式离谱的如:201315当然不能转化为日期了
然后按照一楼的操作,还有其他方法,多看看帮助文档
String now = new SimpleDateFormat("yyyy年MM月dd日").format(new Data());
希望将日期输出成2005年6月9日,我们可以这么写:
SimpleDateFormat sdf = new SimpleDateFormat( " yyyy年MM月dd日 " );
String str = sdf.format(parse( " 2005-06-09 00:00:00 " );
str便会依照我们设定的格式输出了。
用的API是SimpleDateFormat,它是属于java.text.SimpleDateFormat,所以请记得import进来!用法:SimpleDateFormat sdf = new SimpleDateFormat( " yyyy-MM-dd HH:mm:ss " );这一行最重要,它确立了转换的格式,yyyy是完整的公元年,MM是月份,dd是日期。
扩展资料:
SimpleDateFormat的支持格式如下:
yy/MM/dd HH:mm:ss 如 '2017/12/12 17:55:00'
yy/MM/dd HH:mm:ss pm 如 '2017/12/12 17:55:00 pm'
yy-MM-dd HH:mm:ss 如 '2017-12-12 17:55:00'
yy-MM-dd HH:mm:ss am 如 '2017-12-12 17:55:00 am'
SimpleDateFormat 是什么?
请多看jdk帮助文档。
Java中怎么才能把日期转换成想要的格式呢,或把字符串转换成一定格式的日期,如把数据库中的日期或时间转换成自己想要的格式,JAVA中提供了SimpleDateFormat类可以实现,以下是SimpleDateFormat的用法及实例:
java.text
类 SimpleDateFormat
java.lang.Object
java.text.Format
java.text.DateFormat
java.text.SimpleDateFormat
所有已实现的接口:
Serializable, Cloneable
SimpleDateFormat 是一个以与语言环境有关的方式来格式化和解析日期的具体类。它允许进行格式化(日期 -> 文本)、解析(文本 -> 日期)和规范化。
SimpleDateFormat
使得可以选择任何用户定义的日期-时间格式的模式。但是,仍然建议通过 DateFormat 中的
getTimeInstance、getDateInstance 或 getDateTimeInstance
来创建日期-时间格式器。每一个这样的类方法都能够返回一个以默认格式模式初始化的日期/时间格式器。
packageceshi;
importjava.text.ParseException;
importjava.text.SimpleDateFormat;
importjava.util.Date;
publicclassCeshi {
publicstaticvoidmain(String[] args) throwsParseException {
SimpleDateFormat CeshiFmt0=newSimpleDateFormat("Gyyyy年MM月dd日 HH时mm分ss秒");
SimpleDateFormat CeshiFmt1=newSimpleDateFormat("yyyy/MM/dd HH:mm");
SimpleDateFormat CeshiFmt2=newSimpleDateFormat("yyyy-MM-dd HH:mm:ss");
SimpleDateFormat CeshiFmt3=newSimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒 E ");
SimpleDateFormat CeshiFmt4=newSimpleDateFormat("yyyy/MM/dd E");
SimpleDateFormat CeshiFmt5=newSimpleDateFormat(
"一年中的第 D 天 ,第w个星期 ,一个月中第W个星期 ,k时 z时区");
Date now=newDate();
System.out.println(CeshiFmt0.format(now));
System.out.println(CeshiFmt1.format(now));
System.out.println(CeshiFmt2.format(now));
System.out.println(CeshiFmt3.format(now));
System.out.println(CeshiFmt4.format(now));
System.out.println(CeshiFmt5.format(now));
}
}
SimpleDateFormat 是一个以与语言环境有关的方式来格式化和解析日期的具体类。它允许进行格式化(日期 -> 文本)、解析(文本 -> 日期)和规范化。
主要用于格式化日期
SimpleDateFormat 是一个以与语言环境有关的方式来格式化和解析日期的具体类。它允许进行格式化(日期 -> 文本)、解析(文本 -> 日期)和规范化。
常用的构造方法
public SimpleDateFormat(String pattern)
pattern - 描述日期和时间格式的模式 如:yyyyMMDD
例:
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
String createtime = sdf.format(new Date());
建议去看JAVA API里的详细介绍
java中,字符串类型的时间数据怎样转换成date类型。
ava.text.SimpleDateFormat类可以实现Date对象和字符串表示的日期信息的互相转换,
如下操作即可。
String str="2014-3-17 ";
String pattern="YYYY-MM-dd"
SimpleDateFormat sdf=new SimpleDateFormt(pattern);
Date date = sdf.parse(str);
System.out.println(data);//Mon Mar 17 00:00:00 CST 2014
public void formateDate(){
String string = "2014-3-17 14:09";
SimpleDateFormat date = new SimpleDateFormat("yyyy-MM-dd");
Date str = null;
try {
str = date.parse(string);
} catch (ParseException e) {
e.printStackTrace();
}
System.out.println((str.toLocaleString()).split(" ")[0]);
}
你想输出的格式,已经是转成String的了。
SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd");
System.out.println(fmt.format(aDate));
如下即可
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date date = sdf.parse(str);
System.out.println(date);
希望能帮到你。
将字符串类型的时间转换成date类型可以使用SimpleDateFormat来转换,具体方法如下:
1、定义一个字符串类型的时间;
2、创建一个SimpleDateFormat对象并设置格式;
3、最后使用SimpleDateFormat的parse方法将String类型的时间转换成Date类型的时间。
具体代码如下:
String string = "2014-3-17";
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
Date date = null;
try {
date = dateFormat.parse(string);
System.out.println(date.toLocaleString().split(" ")[0]);//切割掉不要的时分秒数据
} catch (ParseException e) {
e.printStackTrace();
}
介绍一下SimpleDateFormat:SimpleDateFormat 是 Java 中一个非常常用的类,该类用来对日期字符串进行解析和格式化输出。
SimpleDateFormat 12小时制和24小时制的区别
区别格式化时间为12小时制的,则使用hh:mm:ss 如果希望格式化时间为24小时制的,则使用HH:mm:ss
解析在使用SimpleDateFormat时格式化时间的 yyyy.MM.dd 为年月日而如果希望格式化时间为12小时制的,则使用hh:mm:ss 如果希望格式化时间为24小时制的,则使用HH:mm:ss
Date date = new Date();SimpleDateFormat sdformat = new SimpleDateFormat("yyyy.MM.dd HH:mm:ss a ZZZ");String LgTime = formatter.format(LoginDate1);结过为24小时:星期四 2005.07.14 11:07:812 上午 +0800
Date类,已经很少用了。更多使用的是CalendarCalendar date = Calendar.getInstance();date.get(Calendar.HOUR_OF_DAY );//得到24小时机制的date.get(Calendar.HOUR);// 得到12小时机制的当然,SimpleDateFormat也可以格式化24机制或者12小时机制。H 0-23k 1-24----------------K 0-11h 1-12
拓展内容java
Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程 。
Java具有简单性、面向对象、分布式、健壮性、安全性、平台独立与可移植性、多线程、动态性等特点 。Java可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序等 。
SimpleDateFormat 12小时制和24小时制的区别是大写为24小时制,小写为12小时制。
使用SimpleDateFormat时格式化时间的 yyyy.MM.dd 为年月日;
如果希望格式化时间为12小时制的,则使用hh:mm:ss;
而如果希望格式化时间为24小时制的,则使用HH:mm:ss;
代码如下:
Date date = new Date();
//12小时制
SimpleDateFormat sdformat12 = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
System.out.println(sdformat12.format(date));
Date date = new Date();
//24小时制
SimpleDateFormat sdformat24 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
System.out.println(sdformat24.format(date));
简单的说就是:要想12小时制就小写hh:mm:ss,要想24小时制就大写HH:mm:ss
SimpleDateFormat 12小时制和24小时制的区别:
在使用SimpleDateFormat时格式化时间的;yyyy.MM.dd 为年月日而如果希望格式化时间为12小时制的,则使用hh:mm:ss如果希望格式化时间为24小时制的,则使用HH:mm:ss 要注意区分hh的大小写。
一、使用不同:
在使用SimpleDateFormat时格式化时间的;yyyy。MM。dd为年月日而如果希望格式化时间为12小时制的,则使用hh:mm:ss如果希望格式化时间为24小时制的,则使用HH:mm:ss要注意区分hh的大小写。
二、转换方式不同:
java代码12小时制转换24小时制方法:tr:12小时制字符串,比如8:00am,7:00pm。8:30am,6:00pm,返回值为24小时制字符串:比如18:00,20:00,21:00。
javaDate类型:24小时制和12小时制;DateFormatdf=newSimpleDateFormat("yyyy-MM-ddHH-mm-sssss");HH返回的是24小时制的时间;hh返回的是12小时制的时间。
时间对象的操作
//声明一个时间对象
Date dt = new Date();
//声明一个时间格式化器 SimpleDateFormat sd = new
SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
//声明一个日历时间对象
Calendar c = Calendar.getInstance();
//给日历时间对象赋值
c.set(1992, 1, 9, 8, 20, 23);
//通过getTime()方法返回一个时间对象,使用格式化器的format()方法格式化输出时间
System.out.println(sd.format(c.getTime()));
以上内容参考:百度百科-时间对象
java怎么格式化时间?
java如何获取当前时间以及格式化需要用到两个类,如下图:
1.获取当前时间,并格式化为(年-月-日 时:分:秒)。
Date t = new Date();
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
System.out.println(df.format(t));
打印输出结果如下图:
2.将java.util.Date转换为java.sql.Date格式。
java.sql.Date sqld = new java.sql.Date(t.getTime());
System.out.println(sqld);
java.sql.Time sqlt = new java.sql.Time(t.getTime());
System.out.println(sqlt);
java.sql.Timestamp sqlts = new java.sql.Timestamp(t.getTime());
System.out.println(sqlts);
打印输出结果如下图:
“拓展资料——java”:
Java是一种广泛使用的计算机编程语言,拥有跨平台、面向对象、泛型编程的特性,广泛应用于企业级Web应用开发和移动应用开发。
Java编程语言的风格十分接近C++语言。继承了C++语言面向对象技术的核心,舍弃了容易引起错误的指针,以引用取代;移除了C++中的运算符重载和多重继承特性,用接口取代;增加垃圾回收器功能。
Java编程语言是个简单、面向对象、分布式、解释性、健壮、安全与系统无关、可移植、高性能、多线程和动态的语言。
把日期格式化yyyy年mm月dd日
日期格式化为yyyy年mm月dd日,使用java语言的话,可以用格式转换类SimpleDateFormat,如下代码:
public String void parseDate(String str) {
//String str = "2007-01-02";
DateFormat formatter = new SimpleDateFormat("yyyy年-MM月-dd日");
try{
Date date = (Date)formatter.parse(str); //将字符串转换成date类型
}catch(Exception e){
return date.toString();
}
}
通过调用上面的方式传入一个类似:2010-10-06,就可以返回,转换成2010年10月06日的格式。
API里的这个类,java.text.SimpleDateFormat是专门格式化日期的。
举个小例子:
Date a=new Date();
SimpleDateFormat sd=new SimpleDateFormat("yyyy年MM月DD日");
sd.setFormat(a);
有好多种自己去查查API看看吧,呵呵
API里的这个类,java.text.SimpleDateFormat是专门格式化日期的。举个小例子:Date a=new Date();SimpleDateFormat sd=new SimpleDateFormat("yyyy年MM月DD日");sd.setFormat(a);1、首先鼠标左键点击电脑右下角的时间,打开更改日期和时间设置,如下图所示
2、选择左下角的更改日历设如图所示:
3、找到中间的日期格式,然后选择yyyy年mm月dd日点击应用就可以了。
Java 使用SimpleDateFormat类格式化输出日期时间
import java.util.Date;
import java.util.Locale;
import java.text.DateFormat;
import java.text.FieldPosition;
/**
* DateFormat 的API测试程序
*/
public class DateFormatTest {
public static void main(String[] args) {
// 只显示“时间”:调用getTimeInstance()函数
testGetTimeInstance() ;
// 只显示“日期”:调用getDateInstance()函数
testGetDateInstance() ;
// 显示“日期”+“时间”:调用getDateTimeInstance()函数
testGetDateTimeInstance() ;
// 测试format()函数
testFormat();
}
/**
* 测试DateFormat的getTimeInstance()函数
* 它共有3种重载形式:
* (01) getTimeInstance()
* (02) getTimeInstance(int style)
* (03) getTimeInstance(int style, Locale locale)
*
* @author skywang
*/
private static void testGetTimeInstance() {
Date date = new Date();
//Locale locale = new Locale("fr", "FR");
Locale locale = new Locale("zh", "CN");
// 等价于 DateFormat.getTimeInstance( DateFormat.MEDIUM);
DateFormat short0 = DateFormat.getTimeInstance( );
// 参数是:“时间的显示样式”
DateFormat short1 = DateFormat.getTimeInstance( DateFormat.SHORT);
DateFormat medium1 = DateFormat.getTimeInstance( DateFormat.MEDIUM);
DateFormat long1 = DateFormat.getTimeInstance( DateFormat.LONG);
DateFormat full1 = DateFormat.getTimeInstance( DateFormat.FULL);
// 参数是:“时间的显示样式” 和 “地区”
DateFormat short2 = DateFormat.getTimeInstance( DateFormat.SHORT, locale);
DateFormat medium2 = DateFormat.getTimeInstance( DateFormat.MEDIUM, locale);
DateFormat long2 = DateFormat.getTimeInstance( DateFormat.LONG, locale);
DateFormat full2 = DateFormat.getTimeInstance( DateFormat.FULL, locale);
System.out.println("\n----getTimeInstance ----\n"
+ "(1.0) Empty Param : " + short0.format(date) +"\n"
+ "(2.1) One Param(s) : " + short1.format(date) +"\n"
+ "(2.2) One Param(m) : " + medium1.format(date) +"\n"
+ "(2.3) One Param(l) : " + long1.format(date) +"\n"
+ "(2.4) One Param(f) : " + full1.format(date) +"\n"
+ "(3.1) One Param(s,l): " + short2.format(date) +"\n"
+ "(3.2) One Param(m,l): " + medium2.format(date) +"\n"
+ "(3.3) One Param(l,l): " + long2.format(date) +"\n"
+ "(3.4) One Param(f,l): " + full2.format(date) +"\n"
);
}
/**
* 测试DateFormat的getDateTimeInstance()函数
* 它共有3种重载形式:
* (01) getDateInstance()
* (02) getDateInstance(int style)
* (03) getDateInstance(int style, Locale locale)
*/
public static void testGetDateTimeInstance() {
Date date = new Date();
Locale locale = new Locale("zh", "CN");
// 等价于 DateFormat.getDateTimeInstance( DateFormat.MEDIUM);
DateFormat short0 = DateFormat.getDateTimeInstance( );
DateFormat short1 = DateFormat.getDateTimeInstance( DateFormat.SHORT, DateFormat.SHORT);
DateFormat medium1 = DateFormat.getDateTimeInstance( DateFormat.MEDIUM, DateFormat.MEDIUM);
DateFormat long1 = DateFormat.getDateTimeInstance( DateFormat.LONG, DateFormat.LONG);
DateFormat full1 = DateFormat.getDateTimeInstance( DateFormat.FULL, DateFormat.FULL);
DateFormat short2 = DateFormat.getDateTimeInstance( DateFormat.SHORT, DateFormat.SHORT, locale);
DateFormat medium2 = DateFormat.getDateTimeInstance( DateFormat.MEDIUM, DateFormat.MEDIUM, locale);
DateFormat long2 = DateFormat.getDateTimeInstance( DateFormat.LONG, DateFormat.LONG, locale);
DateFormat full2 = DateFormat.getDateTimeInstance( DateFormat.FULL, DateFormat.FULL, locale);
System.out.println("\n----getDateTimeInstance ----\n"
+ "(1.0) Empty Param : " + short0.format(date) +"\n"
+ "(2.1) One Param(s) : " + short1.format(date) +"\n"
+ "(2.2) One Param(m) : " + medium1.format(date) +"\n"
+ "(2.3) One Param(l) : " + long1.format(date) +"\n"
+ "(2.4) One Param(f) : " + full1.format(date) +"\n"
+ "(3.1) One Param(s,l): " + short2.format(date) +"\n"
+ "(3.2) One Param(m,l): " + medium2.format(date) +"\n"
+ "(3.3) One Param(l,l): " + long2.format(date) +"\n"
+ "(3.4) One Param(f,l): " + full2.format(date) +"\n"
);
}
/**
* 测试DateFormat的getDateInstance()函数
* 它共有3种重载形式:
* (01) getDateTimeInstance()
* (02) getDateTimeInstance(int dateStyle, int timeStyle)
* (03) getDateTimeInstance(int dateStyle, int timeStyle, Locale locale)
*/
public static void testGetDateInstance() {
Date date = new Date();
//Locale locale = new Locale("en", "US");
Locale locale = new Locale("zh", "CN");
// 等价于 DateFormat.getDateInstance( DateFormat.MEDIUM);
DateFormat short0 = DateFormat.getDateInstance( );
DateFormat short1 = DateFormat.getDateInstance( DateFormat.SHORT);
DateFormat medium1 = DateFormat.getDateInstance( DateFormat.MEDIUM);
DateFormat long1 = DateFormat.getDateInstance( DateFormat.LONG);
DateFormat full1 = DateFormat.getDateInstance( DateFormat.FULL);
DateFormat short2 = DateFormat.getDateInstance( DateFormat.SHORT, locale);
DateFormat medium2 = DateFormat.getDateInstance( DateFormat.MEDIUM, locale);
DateFormat long2 = DateFormat.getDateInstance( DateFormat.LONG, locale);
DateFormat full2 = DateFormat.getDateInstance( DateFormat.FULL, locale);
System.out.println("\n----getDateInstance ----\n"
+ "(1.0) Empty Param : " + short0.format(date) +"\n"
+ "(2.1) One Param(s) : " + short1.format(date) +"\n"
+ "(2.2) One Param(m) : " + medium1.format(date) +"\n"
+ "(2.3) One Param(l) : " + long1.format(date) +"\n"
+ "(2.4) One Param(f) : " + full1.format(date) +"\n"
+ "(3.1) One Param(s,l): " + short2.format(date) +"\n"
+ "(3.2) One Param(m,l): " + medium2.format(date) +"\n"
+ "(3.3) One Param(l,l): " + long2.format(date) +"\n"
+ "(3.4) One Param(f,l): " + full2.format(date) +"\n"
);
}
/**
* 测试DateFormat的format()函数
*/
public static void testFormat() {
Date date = new Date();
StringBuffer sb = new StringBuffer();
FieldPosition field = new FieldPosition(DateFormat.YEAR_FIELD);
DateFormat format = DateFormat.getDateTimeInstance();
sb = format.format(date, sb, field);
System.out.println("\ntestFormat");
System.out.printf("sb=%s\n", sb);
}
}
java SimpleDateFormat 如何插入其它字符
System.out.println("IMG_"+new java.text.SimpleDateFormat("yyyyMMdd_HHmmss").format(new java.util.Date()));
1、字符串占位符的典型应用。类似于$1,$2之类的。
2、而占位符往往都是固定的。
3、SimpleDateFormat 是专对日期字符串进行格式化的。它的占位符规定只有yyyyMMdd_HHmmss等,而没有IMG_之类,故发现格式化异常。
你好~
对于字符会进行匹配,遇到不认识的自然就报错啦·
public class SimpleDateFormat extends DateFormat
SimpleDateFormat 是一个以国别敏感的方式格式化和分析数据的具体类。 它允许格式化 (date -> text)、语法分析 (text -> date)和标准化。
SimpleDateFormat 允许以为日期-时间格式化选择任何用户指定的方式启动。 但是,希望用 DateFormat 中的getTimeInstance、 getDateInstance 或 getDateTimeInstance 创建一个日期-时间格式化程序。 每个类方法返回一个以缺省格式化方式初始化的日期/时间格式化程序。 可以根据需要用 applyPattern 方法修改格式化方式。
下面是个小例子:
import java.text.*;
import java.util.Date;
/**
SimpleDateFormat函数语法:
G 年代标志符
y 年
M 月
d 日
h 时 在上午或下午 (1~12)
H 时 在一天中 (0~23)
m 分
s 秒
S 毫秒
E 星期
D 一年中的第几天
F 一月中第几个星期几
w 一年中第几个星期
W 一月中第几个星期
a 上午 / 下午 标记符
k 时 在一天中 (1~24)
K 时 在上午或下午 (0~11)
z 时区
*/
public class FormatDateTime {
public static void main(String[] args) {
SimpleDateFormat myFmt=new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒");
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年MM月dd日 HH时mm分ss秒 E ");
SimpleDateFormat myFmt4=new SimpleDateFormat(
"一年中的第 D 天 一年中第w个星期 一月中第W个星期 在一天中k时 z时区");
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时24分27秒
04/12/16 17:24
2004-12-16 17:24:27
2004年12月16日 17时24分27秒 星期四
一年中的第 351 天 一年中第51个星期 一月中第3个星期 在一天中17时 CST时区
16 Dec 2004 09:24:27 GMT
2004-12-16 17:24:27
Thu Dec 16 17:24:27 CST 2004
下面是个JavaBean:
public class FormatDateTime {
public static String toLongDateString(Date dt){
SimpleDateFormat myFmt=new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒 E ");
return myFmt.format(dt);
}
public static String toShortDateString(Date dt){
SimpleDateFormat myFmt=new SimpleDateFormat("yy年MM月dd日 HH时mm分");
return myFmt.format(dt);
}
public static String toLongTimeString(Date dt){
SimpleDateFormat myFmt=new SimpleDateFormat("HH mm ss SSSS");
return myFmt.format(dt);
}
public static String toShortTimeString(Date dt){
SimpleDateFormat myFmt=new SimpleDateFormat("yy/MM/dd HH:mm");
return myFmt.format(dt);
}
public static void main(String[] args) {
Date now=new Date();
System.out.println(FormatDateTime.toLongDateString(now));
System.out.println(FormatDateTime.toShortDateString(now));
System.out.println(FormatDateTime.toLongTimeString(now));
System.out.println(FormatDateTime.toShortTimeString(now));
}
}
调用的main 测试结果:
2004年12月16日 17时38分26秒 星期四
04年12月16日 17时38分
17 38 26 0965
04/12/16 17:38