Java 如何将给定字符串转换为日期格式?

Java 如何将给定字符串转换为日期格式?,java,json,java-8,Java,Json,Java 8,我有这个dob键包含日期格式的JsonObject,但我不想用这种格式转换它 String dobDate=String.valueOf(gridData.get("DOB")); 它返回的字符串是:2006-12-31T18:30:00.000Z 但我想将此日期转换为“dd-MM-yyyy” 我怎么能回答这个问题。我敢肯定这个问题是重复的! 但答案是: 这使用了日期对象的旧方法 SimpleDateFormat format = new SimpleStringFormat("yyyy-M

我有这个dob键包含日期格式的JsonObject,但我不想用这种格式转换它

String dobDate=String.valueOf(gridData.get("DOB"));
它返回的字符串是:
2006-12-31T18:30:00.000Z

但我想将此日期转换为“dd-MM-yyyy”
我怎么能回答这个问题。

我敢肯定这个问题是重复的!
但答案是:
这使用了
日期
对象的旧方法

SimpleDateFormat format  = new SimpleStringFormat("yyyy-MM-ddTHH:mm:ss.zzZ");
Date d = format.parse("Your date String return thing");
然后你有一个
日期
对象,
(我不完全确定这个模式是否正确) 如果您需要它作为字符串:

To get a String out of it use:
String newDateFormat = format.format(d);
上述方法正在发挥作用。如果你有兴趣用“现代”的方式,
看看这些课程:



我认为时间处理是一个复杂的话题,如果你使用它,你应该进行一些调查

如果您有java.util.Date,则可以使用

SimpleDateFormat df = new SimpleDateFormat("dd-MM-yyyy");
String formatted = df.format(gridData.get("DOB"));

SimpleDataFormat f=新的SimpleDataFormat(“dd-MM-yyyy”);字符串日期=f.格式(dobDate);系统输出打印项次(日期);最好使用
Instant Instant=Instant.parse(“2006-12-31T18:30:00.000Z”)您希望日期来自哪个时区?例如,如果您在印度,则字符串等于当地时间2007-01-01T00:00。地球上的任何地方都不是同一个日期。请不要教年轻人使用早已过时且臭名昭著的麻烦
SimpleDateFormat
class。至少不是第一个选择。而且不是毫无保留的。今天我们的节目好多了。谢谢你的编辑
Calendar
GregoriaCalendar
很难算是现代的,尽管他们试图解决
Date
中的一些设计问题。无论如何,java.time已经完全取代了它们
Instant
LocalDate
是推荐使用的课程。请不要教年轻人使用过时且臭名昭著的
SimpleDateFormat
课程。至少不是第一个选择。而且不是毫无保留的。今天,我们在中有了更好的功能。当我使用它时,它不能作为可接受的Date dobDate=sdf.parse(String.valueOf(gridData.get(“DOB”))工作;字符串dobMap=sdf.format(dobDate);您使用了错误的模式更像是yyyy-MM ddTHH:MM:ss.zzZ我不知道它是否有效,但它似乎是一个更合适的解决方案