J'ai un cas spécifique que je dois prendre le champ date, le convertir en heure GMT, puis le convertir en format String spécifique.Convertir l'heure GMT en format de chaîne spécifique
Cela donne à l'heure GMT:
public static void main(String[] args) {
Date rightNow = Calendar.getInstance().getTime();
DateFormat gmtFormat = new SimpleDateFormat();
TimeZone gmtTime = TimeZone.getTimeZone("GMT");
gmtFormat.setTimeZone(gmtTime);
System.out.println("GMT Time: " + gmtFormat.format(rightNow));
String gmtDate=gmtFormat.format(rightNow);
}
Maintenant je dois que le temps de GMT convertir au format chaîne yyyy-MM-ddTHH:mm:ssZ
Exemple heure dans mon fuseau horaire 17:10:00
, GMT 15:10:00
donc cela signifie la sortie finale devrait être 2017-08-07T15:10:00Z
J'ai essayé ce code à ajouter:
String pattern = "yyyy-MM-ddTHH:mm:ssZ";
SimpleDateFormat simpleDateFormat = new SimpleDateFormat(pattern);
String date = simpleDateFormat.format(gmtDate);
System.out.println(date);
Mais bien sûr, je reçois l'exception parce que la chaîne ne peut pas être convertie comme ceci, mais j'ai besoin de quelque chose de similaire.
-vous * avez * à utiliser l'ancienne API de date/heure? Le paquet java.time est beaucoup, beaucoup plus agréable. Au-delà de ça, on ne sait pas quelle exception vous obtenez ou où ... –
Salut, je reçois une exception à cette ligne: SimpleDateFormat simpleDateFormat = new SimpleDateFormat (pattern); cette exception dans le thread "principal" java.lang.IllegalArgumentException: caractère motif illégal 'T' \t à java.text.SimpleDateFormat.compile (Source inconnue) \t à java.text.SimpleDateFormat.initialize (Source inconnue) – Dejan
droit, avez-vous enquêté sur cela? Fondamentalement, votre modèle est cassé - vous devez citer le 'T' et le' Z'. –