0

I'm writing an application with Flutter. I read the times and dates from a source. The date and time format string sent by the resource is:

(Day, Month, Year, Hour, Minute, Second)

07.04.2021 13:30:00
03.04.2021 11:30:00
04.04.2021 17:30:00
03.04.2021 17:30:00

I want to convert this date and time format to DateTime data type with DateTime.parse() function. Here are some examples of what this function accepts as strings and what I need:

"2012-02-27 13:27:00"
"20120227 13:27:00"
"20120227T132700"

I have to convert the string type data coming to me from the source into one of these formats. But in Dart language I couldn't create the Regular Expression needed to do this and couldn't find it anywhere.

I would be very grateful if anyeone could help me understand what I should do.

3 Answers3

1

use DateFormat.parse and DateFormat.format from intl package:

https://api.flutter.dev/flutter/intl/DateFormat/parse.html

https://api.flutter.dev/flutter/intl/DateFormat/format.html

final date = DateFormat("yyyy.MM.dd HH:mm:ss").parse("07.04.2021 13:30:00");

DateFormat("yyyy-MM-dd HH:mm:ss").format(date);

DateTime.parse accepts only a subset of ISO 8601 formats: https://api.flutter.dev/flutter/dart-core/DateTime/parse.html

eeqk
  • 3,492
  • 1
  • 15
  • 22
1

This is a piece a cake by using regular expressions:

var regExp = RegExp(r'(\d{4}-?\d\d-?\d\d(\s|T)\d\d:?\d\d:?\d\d)');
1

If you have to play a lot with the dates, you could use the Jiffy package to ease your development.

DateTime yourDatetime = Jiffy("07.04.2021 13:30:00", "dd.MM.yyyy hh:mm:ss").dateTime;
FDuhen
  • 4,097
  • 1
  • 15
  • 26