1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > java 如何日期yyyy-mm-dd转换为yyyy/mm/dd_关于java:如何将字符串转换为yyyy-MM-dd

java 如何日期yyyy-mm-dd转换为yyyy/mm/dd_关于java:如何将字符串转换为yyyy-MM-dd

时间:2018-08-22 11:18:12

相关推荐

java 如何日期yyyy-mm-dd转换为yyyy/mm/dd_关于java:如何将字符串转换为yyyy-MM-dd

本问题已经有最佳答案,请猛点这里访问。

我有一个像"-07-16 17:07:21"这样的字符串。 我想将其转换为相同格式的日期。 我尝试过这样的事情:

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:MM:ss");

Date date = sdf.parse("-07-16 17:07:21");

但是输出是不同的格式,例如Thu Jul 16 17:00:21 IST 。 我怎样才能使其按需工作。 谁能帮我。 我知道这可能是重复的,但我没有发现任何运气。

日期没有格式,它有一个表示时间点的值。如果要以某种格式显示它,则应使用SimpleDateFormat

我怎样才能做到这一点。您能给我一个例子或链接以供参考吗?

如果您希望将其设置为不同的格式,请使用所需的模式定义另一个SimpleDateformat并使用其设置日期格式。要清楚:您有一种SimpleDateformat解析输入,而另一种则用于打印输出。

至少有两个答案说明了这一点,让我更明确地说:日期不"具有格式"。日期是一个(大)整数,是自过去某个时间以来的毫秒数。 SimpleDateFormat是一种将字符串从特定格式转换为日期(使用parse())或将日期转换为字符串(使用format())的简便方法。

我建议您避免使用SimpleDateFormat类。它不仅已经过时,而且非常麻烦。今天,我们在java.time(现代Java日期和时间API)方面有了很多改进。

从Java API /javase/8/docs/api/java/util/Date.html

The class Date represents a specific instant in time, with millisecond precision.

尝试了解Date和DateFormat的区别/连接。

public static void main(String [] args) throws ParseException{

String dateString ="-07-16 17:07:21";

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

// use SimpleDateFormat to define how to PARSE the INPUT

Date date = sdf.parse(dateString);

// at this point you have a Date-Object with the value of

// 1437059241000 milliseconds

// It doesn't have a format in the way you think

// use SimpleDateFormat to define how to FORMAT the OUTPUT

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

sdf = new SimpleDateFormat();

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

// ....

}

输出:(请注意,日期保持不变,只是其表示形式(格式)发生了变化)

-07-16 17:07:21

7/16/15 5:07 PM

new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.getDefault());删除语言环境警告。

尝试使用此:

public static void main(String[] args) {

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

String dateInString ="-07-16 17:07:21";

try {

Date date = formatter.parse(dateInString);

System.out.println(date);

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

} catch (ParseException e) {

e.printStackTrace();

}

}

输出:

Thu Jul 16 17:07:21 IST

-07-16 17:07:21

注意:

有关完整的日期和时间模式,请参考此/javase/7/docs/api/java/text/SimpleDateFormat.html

尝试像这样的格式字符串:yyyy-MM-dd HH:mm:ss

M:月,m:分钟

public static void main(String [] args){

String dateString ="-07-16 17:07:21";

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

Date date;

try {

date = sdf.parse(dateString);

} catch (ParseException e) {

e.printStackTrace();

return;

}

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

System.out.println(dateString.equals(sdf.format(date)));

}

同样,日期没有格式,它具有代表时间点的值。如果要以某种格式显示它,则应使用SimpleDateFormat

我试过了。 它不起作用

sdf.format(date)再次返回String。

参见以下代码:

public static void main(String [] args){

String dateString ="-07-16 17:07:21";

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

Date date;

try {

date = sdf.parse(dateString);

} catch (ParseException e) {

e.printStackTrace();

return;

}

System.out.println(date); // Displays date in it's default format Jul 16 17:00:21 IST

System.out.println(dateString.equals(date)); // Returns false since 'Jul 16 17:00:21 IST ' is not equal to dateString (-07-16 17:07:21)

}

Date类始终以其默认格式存储日期。 SimpleDateFormat帮助使用其对象格式化日期。它不会对日期类对象进行任何更改。而是将Date class转换为User defined格式,这对Date类对象没有任何影响。我想这很清楚。

java 如何日期yyyy-mm-dd转换为yyyy/mm/dd_关于java:如何将字符串转换为yyyy-MM-dd HH:MM:ss格式的日期...

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。