Je veux convertir une chaîne (12 heures) "6:45 PM" en un format TimeOfDay 18:45:00 (24 heures), comment cela peut-il être fait?
3 Réponses :
Vous pouvez essayer d'utiliser un DateFormat, ajoutez simplement une dépendance intl à votre pubspec.yaml
Commencez par analyser la valeur en une date, puis formatez-la comme vous le souhaitez
import 'package:intl/intl.dart';
// parse date
DateTime date= DateFormat.jm().parse("6:45 PM");
DateTime date2= DateFormat("hh:mma").parse("6:45PM"); // think this will work better for you
// format date
print(DateFormat("HH:mm").format(date));
print(DateFormat("HH:mm").format(date2));
Références
Merci, cela a fonctionné, mais entre le 45 et le PM, il devrait y avoir un espace, mais pour ma chaîne, il n'y a pas d'espace entre
Essayez ceci:
var df = DateFormat("h:mma");
var dt = df.parse('6:45PM');
print(DateFormat('HH:mm').format(dt));
Dans le cas de "hh: mm: ssPM" ou "hh: mm: ssAM" -
String [] splitedString = yourString.split(":");
String newFormat = splitedString[2].contain("PM") ? String.valueOf(Integer.parseInt(splitedString[0]) + 12) : splitedString[0] + ":" + splitedString[1] + ":" + splitedString[2].substring(0,2);
Salut, qu'avez-vous essayé jusqu'à présent et qu'est-ce qui n'allait pas exactement?
@Secespitus Bonjour, j'ai vu le document de la classe TimeOfDay mais je n'ai obtenu aucune méthode pour convertir une telle chaîne au format 24