How to format DateTime in Flutter

前端 未结 9 1751
悲哀的现实
悲哀的现实 2020-12-04 10:28

I am trying to display the current DateTime in a Text widget after tapping on a button. The following works, but I\'d like to change the format.

相关标签:
9条回答
  • 2020-12-04 11:03

    You can use DateFormat from intl package.

    import 'package:intl/intl.dart';
    
    DateTime now = DateTime.now();
    String formattedDate = DateFormat('yyyy-MM-dd – kk:mm').format(now);
    
    0 讨论(0)
  • 2020-12-04 11:04

    Use String split method to remove :00.000

    var formatedTime = currentTime.toString().split(':')
    Text(formatedTime[0])
    

    ======= OR USE BELOW code for YYYY-MM-DD HH:MM:SS format without using library ====

    var stringList =  DateTime.now().toIso8601String().split(new RegExp(r"[T\.]"));
    var formatedDate = "${stringList[0]} ${stringList[1]}";
    
    0 讨论(0)
  • 2020-12-04 11:07

    With this approach, there is no need to import any library.

    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()}";
    
    0 讨论(0)
  • 2020-12-04 11:07

    Use this function

    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);
      }
    

    Output:

    08:41:AM
    21-12-2019
    
    0 讨论(0)
  • 2020-12-04 11:12

    Try out this package, Jiffy, it also runs on top of Intl, but makes it easier using momentjs syntax. See below

    import 'package:jiffy/jiffy.dart';   
    
    var now = Jiffy().format("yyyy-MM-dd HH:mm:ss");
    

    You can also do the following

    var a = Jiffy().yMMMMd; // October 18, 2019
    

    And you can also pass in your DateTime object, A string and an array

    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
    
    0 讨论(0)
  • 2020-12-04 11:22

    You can also use this syntax. For 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}';
    
    0 讨论(0)
提交回复
热议问题