将字符串转换为日期并将日期转换回字符串
嗨,我需要将日期(无格式)的字符串表示形式转换为日期对象并将其转换回字符串(具有特定格式)将字符串转换为日期并将日期转换回字符串
这是我迄今为止所尝试的,输出没有像预期的那样出现,而是打印出类似于08140009的东西 - 任何想法是什么
请提供任何建议。
我的代码是:
public String getDateBackToCST(String createDate){
SimpleDateFormat dateFormatter = new SimpleDateFormat("MMddyyyy");
TimeZone obj = TimeZone.getTimeZone("CST");
dateFormatter.setTimeZone(obj);
Date createdDate = null;
try {
createdDate = dateFormatter.parse(createDate);
} catch (ParseException e) {
e.printStackTrace();
}
return dateFormatter.format(createdDate);
}
您需要为特定的SimpleDateFormat适当的标志。您有2个选项来指定时区z
和Z
并指定日期名使用E
这样
import java.text.ParseException;
import java.text.SimpleDateFormat;
public class Main {
public static void main(String[] args) throws ParseException {
String date = "Sat Sep 20 23:39:04 IST 2014 ";
SimpleDateFormat sdf = new SimpleDateFormat("EEE MMM dd hh:mm:ss z yyyy");
System.out.println(sdf.parse(date));
}
}
是的,这是正确的,但每当我们调用分析方法,我们将失去时区信息哪个Date对象将不包含。我想返回的字符串在CST时区 – 2014-09-20 18:18:01
@manjunathacitragar日期对象从不与任何时区关联 – SparkOn 2014-09-20 18:19:20
是的,我同意..传递给该函数的字符串createDate在CST时区,当我解析它并将其格式化回来我只希望它在CST时区。 – 2014-09-20 18:23:48
什么是'createDate'的价值? – 2014-09-20 18:06:09
2014-09-14它有不同的格式或它可能是日期字符串 – 2014-09-20 18:09:32
Sat Sep 20 23:39:04 IST 2014 – 2014-09-20 18:10:14