我试图在点击按钮后在文本小部件中显示当前的日期时间。以下是可以的,但是我想改变格式。
当前的方法
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部分?
当前回答
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]}";
你可以从intl包中使用DateFormat。
import 'package:intl/intl.dart';
DateTime now = DateTime.now();
String formattedDate = DateFormat('yyyy-MM-dd – kk:mm').format(now);
使用这个函数
todayDate() {
var now = new DateTime.now();
var formatter = new DateFormat('dd-MM-yyyy');
String formattedTime = DateFormat('kk:mm:a').format(now);
String formattedDate = formatter.format(now);
print(formattedTime);
print(formattedDate);
}
输出:
08:41:AM
21-12-2019
试试这个包,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
如果用户是美国公民,但想看24小时格式的一切-然后 显示12/24小时的地区将不满足用户
// getting system settings 12/24 h format
if (MediaQuery.of(context).alwaysUse24HourFormat){
timeFormat = new DateFormat("kk:mm", languageCode); //24h format
}
else{
timeFormat = new DateFormat("KK:mm a", languageCode); //12h format
}
//then use it:
'${timeFormat.format DateTime.now())}'