我试图在点击按钮后在文本小部件中显示当前的日期时间。以下是可以的,但是我想改变格式。

当前的方法

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部分?


当前回答

将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");

其他回答

将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");

使用这个函数

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

使用字符串分割方法删除: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);

如果用户是美国公民,但想看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())}'