在java中转换日期时出错
发布时间:2020-12-14 05:53:14 所属栏目:Java 来源:网络整理
导读:String date = jsonobject.getString("needbydate");DateFormat df = new SimpleDateFormat("MMM/dd/yyyy");DateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'hh:mm:ssZ");Date startDate = sdf.parse(date);String needbydate = df.format(startDate).
String date = jsonobject.getString("needbydate"); DateFormat df = new SimpleDateFormat("MMM/dd/yyyy"); DateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'hh:mm:ssZ"); Date startDate = sdf.parse(date); String needbydate = df.format(startDate).toString()+""; 怎么了:: >一开始 date = 2014-12-17T21:37:00 00:00 >最后 needbydate = 2014年12月18日 17改为18 ….我在转换中做错了什么 编辑: String date=jsonobject.getString("needbydate"); DateFormat df = new SimpleDateFormat("MMM/dd/yyyy",Locale.ENGLISH); DateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'hh:mm:ss",Locale.ENGLISH); sdf.setTimeZone(TimeZone.getTimeZone("UTC")); Date startDate; startDate = sdf.parse(date); needbydate = df.format(startDate).toString()+""; 解决方法
您的日期格式使用系统默认时区.这对你的输入没问题,因为它明确指定了UTC偏移 – 但对于你的输出,你只是得到了一个日期.因此,它会显示您系统时区中该时间点的日期.
你需要考虑你想要的时区 – 以及你的输入是否受到非零偏移的影响.您可以使用 您也应该使用输入格式的HH而不是hh,因为它显然是24小时值而不是12小时值. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |