java-Android将字符串转换为日期会更改整个日期时间
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java-Android将字符串转换为日期会更改整个日期时间,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1926字,纯文字阅读大概需要3分钟。
内容图文
![java-Android将字符串转换为日期会更改整个日期时间](/upload/InfoBanner/zyjiaocheng/669/bdb04e0f3bea4047b758dcff0851da88.jpg)
为什么输出不一样?
Date currentTrueSystemDate = Calendar.getInstance().getTime();
SimpleDateFormat sdf = new SimpleDateFormat("dd-MMM-yyyy hh:mm:ss");
sdf.setTimeZone(TimeZone.getTimeZone("Asia/Kuwait"));
String newConvertedDate = sdf.format(currentTrueSystemDate.getTime());
System.out.println(newConvertedDate);
try {
Date newConvertedDate2 = sdf.parse(newConvertedDate);
System.out.println(newConvertedDate2);
} catch (ParseException e) {
System.out.println(e.getLocalizedMessage());
}
输出:
I/System.out: 27-Sep-2018 09:16:52
I/System.out: Thu Sep 27 07:16:52 GMT+01:00 2018
之所以我将“ newConvertedDate”从字符串转换为日期,是因为我想在其上使用.before和.after函数.我不明白为什么将字符串解析为日期会更改时间?
解决方法:
I don’t understand why parsing a string into date changes the time?
format()会将日期(没有时区,是自1970-01-01 00:00:00 UTC以来经过的毫秒数)转换为您指定的时区(在本例中为科威特)的字符串表示形式.
因此,您第一次在科威特时区中获取一个String并只是打印它.这只是一个没有时区信息的字符串.但是时间是科威特时间.
然后,您使用parse()将字符串转换为日期,并假定该日期在科威特时间,因为sdf实例相同.现在,此字符串将转换为日期,然后System.out.println在您的本地时区中打印它.
需要注意的是,两个时间相同,只是时区不同.
如果需要相同的时间,则需要创建一个SimpleDateFormat的新实例,并将日期字符串传递给它.这样就可以假定这是本地时区日期,并解析返回一个日期,该日期在打印时将再次给出相同的值.但是请注意,该日期与上一个日期不同,只是时间相同.
像这样
Date currentTrueSystemDate = Calendar.getInstance().getTime();
SimpleDateFormat sdf = new SimpleDateFormat("dd-MMM-yyyy hh:mm:ss");
sdf.setTimeZone(TimeZone.getTimeZone("Asia/Kuwait"));
String newConvertedDate = sdf.format(currentTrueSystemDate.getTime());
System.out.println(newConvertedDate);
try {
sdf = new SimpleDateFormat("dd-MMM-yyyy hh:mm:ss");
Date newConvertedDate2 = sdf.parse(newConvertedDate);
System.out.println(newConvertedDate2);
} catch (ParseException e) {
System.out.println(e.getLocalizedMessage());
}
内容总结
以上是互联网集市为您收集整理的java-Android将字符串转换为日期会更改整个日期时间全部内容,希望文章能够帮你解决java-Android将字符串转换为日期会更改整个日期时间所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。