Ответ 1
Использовать DateFormat
:
import 'package:intl/intl.dart';
DateTime now = DateTime.now();
String formattedDate = DateFormat('yyyy-MM-dd – kk:mm').format(now);
Я пытался отобразить текущий DateTime
в Text
после нажатия на кнопку. В настоящее время это работает, но я хочу изменить формат
я использую
DateTime now = DateTime.now();
currentTime = new DateTime(now.year, now.month, now.day, now.hour, now.minute);
Text('$currentTime'),
результат: YYYY-MM-JJ HH-MM:00.000
Я не знаю, как удалить :00.000
Использовать DateFormat
:
import 'package:intl/intl.dart';
DateTime now = DateTime.now();
String formattedDate = DateFormat('yyyy-MM-dd – kk:mm').format(now);
Добавьте intl
пакет в свой файл pubspec.yaml
.
import 'package:intl/intl.dart';
DateFormat dateFormat = DateFormat("yyyy-MM-dd HH:mm:ss");
Преобразование объекта DateTime в строку
String string = dateFormat.format(DateTime.now());
Преобразование строки в объект DateTime
DateTime dateTime = dateFormat.parse("2019-07-19 8:40:23");
Попробуйте этот пакет, Jiffy, он также работает поверх Intl, но упрощает использование синтаксиса momentjs. Смотрите ниже
var now = Jiffy().format("yyyy-MM-dd HH:mm:ss");
Вы также можете сделать следующее
var a = Jiffy().yMMMMd; // October 18, 2019
Вы можете использовать методы parse flutter для форматирования строк, не переписывая их каждый раз. Например, посмотрите месяц/день/год, это метод:
DateFormat().add_yMd().format("your date");