Parsing dates with dart
Try this package, Jiffy. It handles all of the parsing, no need to upper case your string
var jiffy = Jiffy("Mon, 11 Aug 2014 12:53 pm PDT", "EEE, dd MMM yyyy hh:mm a zzz");
You can also format it and manipulate dateTime easily. Example
jiffy.format("dd MM yyyy");
// Or use DateFormat's default date time formats
jiffy.yMMMM;
// Also get relative time
jiffy.fromNow();
You can just replace the lowercase 'am'/'pm' characters by uppercase.
import 'package:intl/intl.dart';
void main() {
var date = 'Mon, 11 Aug 2014 12:53 pm PDT';
DateFormat format = new DateFormat("EEE, dd MMM yyyy hh:mm a zzz");
date = date.replaceFirst(' pm', ' PM').replaceFirst(' am', ' AM');
print(date);
print(format.parse(date));
}