解析日期删除时区
我用下面的的SimpleDateFormat解析字符串,解析日期删除时区
SimpleDateFormat ft= new SimpleDateFormat("EEE MMM dd HH:mm:ss yyyy");
String notimeZone = ft.format(startDateTime);
Date date = ft.parse(notimeZone);
的startDateTime是Date对象格式“周四3月6 12点27分55秒IST 2014”值。
在notimeZone变量i得到,周四3月6 12点27分55秒2014
我期待输出变量日期为,周四3月6 12点27分55秒2014
但相同,星期四三月06 12:27:55 IST 2014.
如何从日期对象中删除时区。
请帮忙。
java.util.Date does
没有Timezone
。它不知道TimeZone
。
当您打印时,java选取默认时区。
从概念上讲,不能有没有时区的日期时间。日期时间必须在一个且仅有一个区域中。您可以将其转换为其他区域,但不能没有区域。
如果您的商业用例需要知道时区,我宁愿使用Calendar
类,或Joda Time
。避免玩Date类。如果您的业务用例不需要任何时区意识,那么请继续使用日期。假设所有Date实例都在您的默认时区中。
最好的事情是使用Calendar
(或Joda Time
)。 Calendar
有点不直观,但你可以完成你的工作。这不是没有理由的,Date类大多被弃用。
用Timezone
初始化Calendar
(查看可用的构造函数)。使用Dateformat
转换并在UI
中显示您想要的任何时区。我在你之前的问题中发布了一些代码。这可能会帮助你。我被困在一个类似的问题。我在一个时区的数据库中有日期。要在UI上的其他时区显示它们,您需要将该日期时间转换为另一个区域。
以下格式给出
“EEE MMM DD HH:MM:SSžYYYY” - >周四3月6日13时18分02秒IST 2014
“EEE MMM DD HH:MM:SS yyyy“ - > Thu Mar 06 13:18:02 2014.
检查是否在日期格式字符串中错误地输入了'z'。 有关更多详细信息,请参阅 - http://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html
“日期”是“日期”,不是格式化的字符串.. – 2014-03-06 07:04:29
@RC。那么我怎样才能得到一个没有时区的日期对象?是否有可能? – user3164187
看到[这个答案](http://stackoverflow.com/a/1522571/180100) – 2014-03-06 07:09:43