DateFormat ne peut pas formater les objets chaîne
En Java, la classe DateFormat est conçue spécifiquement pour formater et analyser les objets Date, pas les chaînes. Le code fourni illustre une erreur courante dans laquelle une représentation sous forme de chaîne d'une date ("2012-11-17T00:00:00.000-05:00") est directement transmise à la méthode DateFormat.format(). Cela entraîne l'exception « Impossible de formater un objet donné en tant que date ».
Approche à deux objets SimpleDateFormat
Pour résoudre ce problème, il est nécessaire d'utiliser deux objets SimpleDateFormat : un pour analyser la chaîne dans un objet Date et un autre pour formater l'objet Date au format souhaité. Le code révisé suivant résout le problème :
<code class="java">import java.text.SimpleDateFormat; import java.text.ParseException; import java.util.Date; public class DateParser { public static void main(String args[]) { String MonthYear = null; String dateformat = "2012-11-17T00:00:00.000-05:00"; SimpleDateFormat inputFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSX", Locale.US); SimpleDateFormat outputFormat = new SimpleDateFormat("MM/yyyy", Locale.US); try { Date date = inputFormat.parse(dateformat); MonthYear = outputFormat.format(date); System.out.println(MonthYear); } catch (ParseException e) { System.err.println("Invalid date format."); } } }</code>
Dans ce code :
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!