I want to apply formatting to a time that the TimePicker
gives me, since it gives me 13:30
, but when I want to print it I get 1:30 PM
, and I want it to give me 13:30
only.
I attach the code of the _pickTime
:
//Función que muestra el Time Picker.
_pickTime() async {
TimeOfDay? timeRecord = await showTimePicker(
context: context,
initialTime: time.replacing(hour: time.hourOfPeriod),
);
if (timeRecord != null) {
setState(() {
finaltime = time.format(context);
});
}
}
CodePudding user response:
use intl package
var df = DateFormat("h:mm a");
var dt = df.parse(timeRecord!.format(context));
print(DateFormat('HH:mm').format(dt));
so your function would look like
_pickTime() async {
TimeOfDay? timeRecord = await showTimePicker(
context: context,
initialTime: time.replacing(hour: time.hourOfPeriod),
);
if (timeRecord != null) {
setState(() {
var df = DateFormat("h:mm a");
var dt = df.parse(timeRecord!.format(context));
var finaltime = DateFormat('HH:mm').format(dt);
//print(finaltime)
// this will return 13:30 only
});
}
}
CodePudding user response:
You can use intl package.
And use this before you print
DateFormat.jm().format(paste your yourdatetime here)
CodePudding user response:
Try this with intl.
final dateNow = DateTime.now();
final date = DateTime(dateNow.year, dateNow.month, dateNow.day, finalTime.hour,
finalTime.minute);
final timeStringFormatted = DateFormat(DateFormat.HOUR24_MINUTE)
.format(date);