首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将Java日期转换为另一个时间作为日期格式

将Java日期转换为另一个时间作为日期格式
EN

Stack Overflow用户
提问于 2013-04-15 18:12:17
回答 4查看 2.2K关注 0票数 0

我想把日期转换成“印度时间”。具体来说:“亚洲/加尔各答”。

代码:

代码语言:javascript
运行
复制
// TODO Auto-generated method stub
Date date=new Date();
SimpleDateFormat simpleDateFormat=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

simpleDateFormat.setTimeZone(TimeZone.getTimeZone("Asia/Calcutta"));

String dateString=simpleDateFormat.format(date);

System.out.println("Currect Date : " + dateString);
// This is returning a string and I want a date.

System.out.println("Wrong Output : "+simpleDateFormat.parse(dateString)); 
//This returns a Date but has incorrect result.

以下是上述代码的输出:

代码语言:javascript
运行
复制
Correct Date : 2013-04-15 15:40:04
Wrong Output : Mon Apr 15 03:10:04 MST 2013

我想要的是日期,而不是字符串,但是当我检索日期时,时间是3:10,当我得到字符串时,我得到的是15:40:04。为什么这些不一样呢?

EN

回答 4

Stack Overflow用户

发布于 2013-04-15 18:29:37

parse()解析date文本并构造Date对象,该对象是一个长值。parse() javadoc表示

代码语言:javascript
运行
复制
The TimeZone value may be overwritten, depending on the given pattern and 
the time zone value in text. Any TimeZone value that has previously been 
set by a call to setTimeZone may need to be restored for further operations.

您的解析日期对象是通过在Date上调用toString()来打印的,Date在MST时区中打印了它。如果您将其从MST转换为IST,那么您将获得您期望的时间戳。因此,您的输出是正确的。您所需要做的就是使用正确的时区格式化和打印您的长日期值。

票数 2
EN

Stack Overflow用户

发布于 2013-04-15 18:18:48

Parse将返回一个DateObject,因此调用:

代码语言:javascript
运行
复制
System.out.println("Wrong Output : "+simpleDateFormat.parse(dateString));

有点类似于:

代码语言:javascript
运行
复制
Date d1 = simpleDateFormat.parse(dateString);
System.out.println("Wrong Output : "+d1.toString());

记住,解析date仅仅是解析一个字符串来生成一个date对象,如果您想以某种格式显示它,请使用该date对象并对其调用sdf.format。例如:

代码语言:javascript
运行
复制
 String dateStringOut=simpleDateFormat.format(d1);
 System.out.println("Output : "+dateStringOut);
票数 1
EN

Stack Overflow用户

发布于 2013-04-15 18:18:56

Date不包含任何格式。它只是一个Date。因此,不能在不同的输出格式之间转换Date对象。一旦您有了日期,就没有必要尝试将其转换为不同的格式。当您使用SimpleDateFormat将其转换为String时,将决定如何格式化它。因此,一旦解析了Date,只需保留它,直到您需要格式化它以便输出。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16012614

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档