javadateformat(javadateformat用法)

http://www.itjxue.com  2023-01-27 13:05  来源:未知  点击次数: 

java DateFormat,format空指针异常

造成这个问题的原因是对象本身为null,确调用了对象的方法,所以造成空指针了。

DateFormat df1=null;

DateFormat df2=null;

这两个对象都是null,你使用这两个对象去掉用它的方法就会包空指针异常。

dfi.format(new Date())就相当于null.format(new Date()),所以会空指针。

解决方法:给df1和df2赋值,修改后如下:

DateFormat?df1=null;

DateFormat?df2=null;

df1=DateFormat.getDateInstance();

df2=DateFormat.getDateTimeInstance();

System.out.println(df1.format(new?Date()));

System.out.println(df2.format(new?Date()));

这样就没问题了。

java DateFormat类的.setTimeZone(TimeZone zone)怎样使用?

setTimeZone

public?void?setTimeZone(TimeZone?zone)

为此?DateFormat?对象的日历设置时区。

参数:

zone?-?给定的新时区。

TimeZone

getDefault

public?static?TimeZone?getDefault()

获取此主机的默认?TimeZone。默认?TimeZone?的来源可能随实现的变化而变化。

返回:

默认的?TimeZone。

另请参见:

setDefault(java.util.TimeZone)

getTimeZone

public?static?TimeZone?getTimeZone(String?ID)

获取给定?ID?的?TimeZone。

参数:

ID?-?TimeZone?的?ID,要么是缩写(如?"PST"?),要么是全名(如?"America/Los_Angeles"),要么是自定义?ID(如?"GMT-8:00")。注意,对缩写的支持只是出于?JDK?1.1.x?兼容性的考虑,因此应该使用全名。

返回:

指定的?TimeZone,如果给定的?ID?无法理解,则返回?GMT?区域。

?DateFormat?dateFormat?=?new?SimpleDateFormat();

????????//dateFormat.setTimeZone(TimeZone.getDefault());

????????dateFormat.setTimeZone(TimeZone.getTimeZone("EET"));

????????System.out.println(dateFormat.format(new?Date()));

java 高手请进!利用DateFormat来解析年月日!

import java.text.DateFormat;

import java.util.Date;

public class Test {

public static void main(String[] args) {

DateFormat df = DateFormat.getInstance();

String[] strings = df.format(new Date()).split(" ")[0].split("-");

for (int i = 0; i strings.length; i++) {

//i=0 年份,i=1 月份,i=2 日可以进行判断

System.out.println(strings[i]);

}

}

}

java 中simpleDateFormat 格式化时间的方法

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

请教关于linux下java类DateFormat的使用

1:DateDemo1类

[java] view plain copy

/*

* 取得系统的时间

*/

public class DateDemo1 {

public static void main(String args[]) {

System.out.println(System.currentTimeMillis());

}

输出为:1311060393171

执行结果会显示从1970年1月1日开始到取得系统时间为止所经过的毫秒数,例如1115346430703这个数字,但这样的数字没有人确切了解它的意 义是什么,您可以使用Date类别来让这个数字变的更有意义一些

2:DateDemo2类

[java] view plain copy

public class DateDemo2 {

@SuppressWarnings("deprecation")

public static void main(String args[]) {

Date date = new Date();

System.out.println("date.toString: " + date.toString());

System.out.println("date: " + date.getDate());

System.out.println("day: " + date.getDay());

System.out.println("hour: " + date.getHours());

System.out.println("minutes: " + date.getMinutes());

System.out.println("month: " + (date.getMonth() + 1));

System.out.println("seconds: " + date.getSeconds());

System.out.println("time: " + date.getTime());

System.out.println("timezone: " + date.getTimezoneOffset());

System.out.println("year: " + (date.getYear() + 1900));

Calendar calendar = Calendar.getInstance();

int year = calendar.get(Calendar.YEAR);

int month = calendar.get(Calendar.MONTH) + 1;

int day = calendar.get(Calendar.DATE);

int hour = calendar.get(Calendar.HOUR);

int minute = calendar.get(Calendar.MINUTE);

int second = calendar.get(Calendar.SECOND);

System.out.println("----------Calendar-------");

System.out.println("year: " + year);

System.out.println("month: " + month);

System.out.println("day: " + day);

System.out.println("hour: " + hour);

System.out.println("minute: " + minute);

System.out.println("second: " + second);

}

}

用date获得时间的值,如时、分、秒、月、日、年得方法已经过时,需要改用Calendar的方法来获取时间的值

输出结果为:

[java] view plain copy

date.toString: Tue Jul 19 15:32:42 CST 2011

date: 19

day: 2

hour: 15

minutes: 32

month: 7

seconds: 42

time: 1311060762362

timezone: -480

year: 2011

----------Calendar-------

year: 2011

month: 7

day: 19

hour: 3

minute: 32

second: 42

3:DateDemo3类

[java] view plain copy

public class DateDemo3 {

public static void main(String args[]) {

Date date = new Date();

/*

* DateFormat会依电脑上的区域设定显示时间格式,EE表示星期,MM表示月份、dd表示日期,而yyyy是西元,每个字元的设定都各有其意义

* 从Date--String

*/

DateFormat dateFormat = new SimpleDateFormat("EE-MM-dd-yyyy");

System.out.println(dateFormat.format(date));

DateFormat format1 = new SimpleDateFormat("yyyy-MM-dd");

System.out.println(format1.format(date));

DateFormat format2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

System.out.println(format2.format(date));

/*

* 从String--Date

*/

String dateStr = "2011-7-19";

try {

Date dateTrans = format1.parse(dateStr);

//System.out.println(dateTrans.toString());

System.out.println(dateTrans.toLocaleString()); //转换为本地的形式

} catch (ParseException e) {

e.printStackTrace();

}

}

}

使用DateFormat来格式化日期数据,上面部分为从Date--String,下面的部分为从String--Date

输出结果为:

[java] view plain copy

星期二-07-19-2011

2011-07-19

2011-07-19 15:33:27

2011-7-19 0:00:00

4:DateDemo4类

[java] view plain copy

public class DateDemo4 {

public static void main(String[] args) {

Date date = new Date();

DateFormat shortFormat = DateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.SHORT);

DateFormat mediumFormat = DateFormat.getDateTimeInstance(DateFormat.MEDIUM, DateFormat.MEDIUM);

DateFormat longFormat = DateFormat.getDateTimeInstance(DateFormat.LONG, DateFormat.LONG);

DateFormat fullFormat = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);

System.out.println(shortFormat.format(date));

System.out.println(mediumFormat.format(date));

System.out.println(longFormat.format(date));

System.out.println(fullFormat.format(date));

}

}

输出结果为:

[java] view plain copy

11-7-19 下午3:33

2011-7-19 15:33:54

2011年7月19日 下午03时33分54秒

2011年7月19日 星期二 下午03时33分54秒 CST

5:DateDemo5类

[java] view plain copy

public class DateDemo5 {

public static void main(String args[]) {

Date date = new Date();

Locale locale = new Locale("en", "US");

DateFormat shortDateFormat = DateFormat.getDateInstance(DateFormat.SHORT, locale);

DateFormat mediumDateFormat = DateFormat.getDateInstance(DateFormat.MEDIUM, locale);

DateFormat longDateFormat = DateFormat.getDateInstance(DateFormat.LONG, locale);

DateFormat fullDateFormat = DateFormat.getDateInstance(DateFormat.FULL, locale);

System.out.println(shortDateFormat.format(date));

System.out.println(mediumDateFormat.format(date));

System.out.println(longDateFormat.format(date));

System.out.println(fullDateFormat.format(date));

}

}

输出结果为:

[java] view plain copy

7/19/11

Jul 19, 2011

July 19, 2011

Tuesday, July 19, 2011

请问Java中DateFormat df=new simpleDateFormat()是什么意思?

DateFormat和SimpleDateFormat都是java.text包下的类,两者的关系是:

DateFormat是抽象类,SimpleDateFormat是具体类,DateFormat是SimpleDateFormat的父类。

由于DateFormat是抽象类,因此没法用new来构建。而SimpleDateFormat可以。

Java的多态性,决定了SimpleDateFormat的类对象可以向上转型为DateFormat类型,因此这句是可以的。

(另外,类名首字母都是大写,你写的simpleDateFormat的首字母写错了)

(责任编辑:IT教学网)

更多

推荐linux文章