unable to convert string date in Format yyyyMMddHHmmss to DateTime dart

DartFlutter

Dart Problem Overview


i have a string containing date in format yyyyMMddHHmmss (e.g.) (20180626170555) and i am using following code to convert it into date time

dateTimeFromString(json['dateTime'], "yyyyMMddHHmmss")

exception is:

FormatException: Trying to read MM from 20180623130424 at position 14

what can be the reason?

Dart Solutions


Solution 1 - Dart

DateTime.parse("string date here") accept some formatted string only. Check below examples of accepted strings.

  • "2012-02-27 13:27:00"
  • "2012-02-27 13:27:00.123456789z"
  • "2012-02-27 13:27:00,123456789z"
  • "20120227 13:27:00"
  • "20120227T132700"
  • "20120227"
  • "+20120227"
  • "2012-02-27T14Z"
  • "2012-02-27T14+00:00"
  • "-123450101 00:00:00 Z": in the year -12345.
  • "2002-02-27T14:00:00-0500": Same as "2002-02-27T19:00:00Z"

=> String to DateTime

DateTime tempDate = new DateFormat("yyyy-MM-dd hh:mm:ss").parse(savedDateString);

=> DateTime to String

String date = DateFormat("yyyy-MM-dd hh:mm:ss").format(DateTime.now());

>Reference links:

> * Use intl for DateFormat from flutter package (https://pub.dev/packages/intl) > * DateTime.parse() => https://api.dart.dev/stable/2.7.2/dart-core/DateTime/parse.html

Solution 2 - Dart

intl DateFormat can't cope with your input string as it doesn't have any separators. The whole string gets consumed as the year. However DateTime.parse does cope with this (nearly). It happens to expect precisely the format you have (again, nearly).

One of the acceptable styles to parse is 20120227T132700, which just differs by the T date/time separator.

Try this:

String date = '20180626170555';
String dateWithT = date.substring(0, 8) + 'T' + date.substring(8);
DateTime dateTime = DateTime.parse(dateWithT);

Solution 3 - Dart

to convert from "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'" to 'MM/dd/yyyy hh:mm a'

date = '2021-01-26T03:17:00.000000Z';
DateTime parseDate =
    new DateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'").parse(date);
var inputDate = DateTime.parse(parseDate.toString());
var outputFormat = DateFormat('MM/dd/yyyy hh:mm a');
var outputDate = outputFormat.format(inputDate);
print(outputDate)

> output 01/26/2021 03:17 AM

Solution 4 - Dart

You can use DateFormat to parse a DateTime from string to an object

// With en_US locale by default
var newDateTimeObj = new DateFormat().add_yMd().add_Hms().parse("7/10/1996 10:07:23")
// with a defined format
var newDateTimeObj2 = new DateFormat("dd/MM/yyyy HH:mm:ss").parse("10/02/2000 15:13:09")

Check the doc here.

Solution 5 - Dart

From the docs, you need Single M to month in year :

dateTimeFromString(json['dateTime'], "yMdHms")

Solution 6 - Dart

The Easient way convert a string into Date format is

  print(DateTime.parse('2020-01-02')); // 2020-01-02 00:00:00.000
  print(DateTime.parse('20200102')); // 2020-01-02 00:00:00.000
  print(DateTime.parse('-12345-03-04')); // -12345-03-04 00:00:00.000
  print(DateTime.parse('2020-01-02 07')); // 2020-01-02 07:00:00.000
  print(DateTime.parse('2020-01-02T07')); // 2020-01-02 07:00:00.000
  print(DateTime.parse('2020-01-02T07:12')); // 2020-01-02 07:12:00.000
  print(DateTime.parse('2020-01-02T07:12:50')); // 2020-01-02 07:12:50.000
  print(DateTime.parse('2020-01-02T07:12:50Z')); // 2020-01-02 07:12:50.000Z
  print(DateTime.parse('2020-01-02T07:12:50+07')); // 2020-01-02 00:12:50.000Z
  print(DateTime.parse('2020-01-02T07:12:50+0700')); // 2020-01-02 00:12:50.00
  print(DateTime.parse('2020-01-02T07:12:50+07:00')); // 2020-01-02 00:12:50.00

Solution 7 - Dart

Basic information about how to convert String to Date and Date to string in flutter. Look at below link

https://quickstartflutterdart.blogspot.com/2018/10/how-to-convert-string-to-date-and-date.html

Might be it will be helped for others.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionSana.91View Question on Stackoverflow
Solution 1 - DartPatel PinkalView Answer on Stackoverflow
Solution 2 - DartRichard HeapView Answer on Stackoverflow
Solution 3 - DartD V YogeshView Answer on Stackoverflow
Solution 4 - DartfingerprintsView Answer on Stackoverflow
Solution 5 - DartaaDevView Answer on Stackoverflow
Solution 6 - DartAnandh KrishnanView Answer on Stackoverflow
Solution 7 - DartiPatelView Answer on Stackoverflow