我试图在点击按钮后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
零件?
Answers:
您可以使用DateFormat
从国际包装。
import 'package:intl/intl.dart';
DateTime now = DateTime.now();
String formattedDate = DateFormat('yyyy-MM-dd – kk:mm').format(now);
DateFormat.yMd(myLocale.languageCode).format(now)
在此处获取当前设备语言环境的位置:Locale myLocale = Localizations.localeOf(context)
使用这种方法,无需导入任何库。
DateTime now = DateTime.now();
String convertedDateTime = "${now.year.toString()}-${now.month.toString().padLeft(2,'0')}-${now.day.toString().padLeft(2,'0')} ${now.hour.toString()}-${now.minute.toString()}";
输出量
2020-12-05 14:57
试用此包Jiffy,它也可以在Intl之上运行,但是可以使用momentjs语法更轻松。见下文
import 'package:jiffy/jiffy.dart';
var now = Jiffy().format("yyyy-MM-dd HH:mm:ss");
您还可以执行以下操作
var a = Jiffy().yMMMMd; // October 18, 2019
您还可以传入DateTime对象,一个字符串和一个数组
var a = Jiffy(DateTime(2019, 10, 18)).yMMMMd; // October 18, 2019
var a = Jiffy("2019-10-18").yMMMMd; // October 18, 2019
var a = Jiffy([2019, 10, 18]).yMMMMd; // October 18, 2019
您也可以使用此语法。对于YYYY-MM-JJ HH-MM:
var now = DateTime.now();
var month = now.month.toString().padLeft(2, '0');
var day = now.day.toString().padLeft(2, '0');
var text = '${now.year}-$month-$day ${now.hour}:${now.minute}';
使用字符串拆分方法删除:00.000
var formatedTime = currentTime.toString().split(':')
Text(formatedTime[0])
=======或在不使用库的情况下使用YYYY-MM-DD HH:MM:SS格式的以下代码====
var stringList = DateTime.now().toIso8601String().split(new RegExp(r"[T\.]"));
var formatedDate = "${stringList[0]} ${stringList[1]}";
intl: 0.15.7
依赖项pubspec.yaml
。可在此处找到该库的最新版本。