我试图在点击按钮后在文本小部件中显示当前的日期时间。以下是可以的,但是我想改变格式。
当前的方法
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部分?
我试图在点击按钮后在文本小部件中显示当前的日期时间。以下是可以的,但是我想改变格式。
当前的方法
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部分?
当前回答
您可以使用DateTime.now()或clock.now()。带时钟库的样本:
import 'package:clock/clock.dart';
DateTime now = clock.now();
String formattedDate = DateFormat('yyyy-MM-dd – kk:mm').format(now);
其他回答
你可以从intl包中使用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");
static String convertDateFormat(String dateTimeString, String oldFormat, String
newFormat) {
DateFormat newDateFormat = DateFormat(newFormat);
DateTime dateTime = DateFormat(oldFormat).parse(dateTimeString);
String selectedDate = newDateFormat.format(dateTime);
return selectedDate;
}
这样调用这个方法
convertDateFormat(inputDate, "dd-mm-yyyy", "d MMM yyyy");
使用字符串分割方法删除: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]}";
你不能在dart中格式化日期,所以你需要使用外部包,我会推荐这篇文章: https://www.geeksforgeeks.org/format-dates-in-flutter/