当前位置:首页 » 编程语言 » dateformatjava

dateformatjava

发布时间: 2022-04-18 11:35:52

java DateFormat,format空指针异常

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

DateFormat df1=null;
DateFormat df2=null;

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

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

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

DateFormatdf1=null;
DateFormatdf2=null;
df1=DateFormat.getDateInstance();
df2=DateFormat.getDateTimeInstance();
System.out.println(df1.format(newDate()));
System.out.println(df2.format(newDate()));

这样就没问题了。

⑵ java,SimpleDateFormat的format()方法

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 中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

⑷ java dateformat怎么用来转换时间的表达格式

SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy HHmm");
System.out.println(sdf.format(new Date()));

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

1:DateDemo1类

[java] view plain
/*
* 取得系统的时间
*/
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
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
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
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
星期二-07-19-2011
2011-07-19
2011-07-19 15:33:27
2011-7-19 0:00:00

4:DateDemo4类

[java] view plain
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
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
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
7/19/11
Jul 19, 2011
July 19, 2011
Tuesday, July 19, 2011

⑹ java中Calendar和DateFormat有什么区别

对 就是这么个意思。Calendar可以精确到年月日,DateFormat只是固定日期格式

⑺ Java中DateFormat类的相关问题~~~

我更喜欢用DateFormate的子类 SimpleDateFormat来定义格式和解析时间,而且代码更清晰、简洁

publicclassDateFormat01{
publicstaticvoidmain(String[]args){
Datedate=newDate();
SimpleDateFormatspf=newSimpleDateFormat("yyyy年-MM月-dd日:HH时-mm分-ss秒");
System.out.println(spf.format(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 DateFormat类的.setTimeZone(TimeZone zone)怎样使用

setTimeZone
publicvoidsetTimeZone(TimeZonezone)
为此DateFormat对象的日历设置时区。

参数:
zone-给定的新时区。

TimeZone

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

返回:
默认的TimeZone。
另请参见:
setDefault(java.util.TimeZone)
getTimeZone
(StringID)
获取给定ID的TimeZone。

参数:
ID-TimeZone的ID,要么是缩写(如"PST"),要么是全名(如"America/Los_Angeles"),要么是自定义ID(如"GMT-8:00")。注意,对缩写的支持只是出于JDK1.1.x兼容性的考虑,因此应该使用全名。
返回:
指定的TimeZone,如果给定的ID无法理解,则返回GMT区域。
DateFormatdateFormat=newSimpleDateFormat();
//dateFormat.setTimeZone(TimeZone.getDefault());
dateFormat.setTimeZone(TimeZone.getTimeZone("EET"));
System.out.println(dateFormat.format(newDate()));

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

DateFormat和SimpleDateFormat都是java.text包下的类,两者的关系是:
DateFormat是抽象类,SimpleDateFormat是具体类,DateFormat是SimpleDateFormat的父类。

由于DateFormat是抽象类,因此没法用new来构建。而SimpleDateFormat可以。
Java的多态性,决定了SimpleDateFormat的类对象可以向上转型为DateFormat类型,因此这句是可以的。
(另外,类名首字母都是大写,你写的simpleDateFormat的首字母写错了)

热点内容
无需服务器搭建网站 发布:2025-01-22 21:53:34 浏览:114
旅游青蛙安卓版如何下载 发布:2025-01-22 21:52:51 浏览:317
欧文5的配置是什么 发布:2025-01-22 21:30:23 浏览:108
日志存储数据库 发布:2025-01-22 21:30:07 浏览:474
gulp上传cdn 发布:2025-01-22 21:27:34 浏览:203
emule文件夹 发布:2025-01-22 21:23:23 浏览:981
s7e什么时候推送安卓7 发布:2025-01-22 21:20:59 浏览:203
狐狸的清白脚本分析 发布:2025-01-22 21:19:59 浏览:182
如何破解仿射密码 发布:2025-01-22 21:13:53 浏览:81
百度视频存储 发布:2025-01-22 21:13:11 浏览:168