How get the name of the days of the week in Dart

后端 未结 4 737
夕颜
夕颜 2021-01-01 11:03

Somebody knows how can I extract from DateTime the name of the day of the week?

ej:

DateTime date = DateTime.now();
String dateFormat = DateFormat(\         


        
相关标签:
4条回答
  • 2021-01-01 11:24

    Use 'EEEE' as a date pattern

     DateFormat('EEEE').format(date);
    

    Check this for more info : https://docs.flutter.io/flutter/intl/DateFormat-class.html

    0 讨论(0)
  • 2021-01-01 11:25

    You can use the below method to achieve the desired result. The return statement can be changed according to your preference. (This is if you want to skip the use of the intl package)

    String dateFormatter(DateTime date) {
      dynamic dayData =
          '{ "1" : "Mon", "2" : "Tue", "3" : "Wed", "4" : "Thur", "5" : "Fri", "6" : "Sat", "7" : "Sun" }';
    
      dynamic monthData =
          '{ "1" : "Jan", "2" : "Feb", "3" : "Mar", "4" : "Apr", "5" : "May", "6" : "June", "7" : "Jul", "8" : "Aug", "9" : "Sep", "10" : "Oct", "11" : "Nov", "12" : "Dec" }';
    
      return json.decode(dayData)['${date.weekday}'] +
          ", " +
          date.day.toString() +
          " " +
          json.decode(monthData)['${date.month}'] +
          " " +
          date.year.toString();
    }
    

    You can call the above method as

    dateFormatter(DateTime.now())
    

    The produces the result - Sat, 11 Apr 2020

    0 讨论(0)
  • You can just use .weekday method to find out the day . eg:

     DateTime date = DateTime.now();
     print("weekday is ${date.weekday}");
    

    This will return the weekday number, for eg tuesday is 2 , as shown below

    class DateTime implements Comparable<DateTime> {
          // Weekday constants that are returned by [weekday] method:
          static const int monday = 1;
          static const int tuesday = 2;
          static const int wednesday = 3;
          static const int thursday = 4;
          static const int friday = 5;
          static const int saturday = 6;
          static const int sunday = 7;
          static const int daysPerWeek = 7;
    
    0 讨论(0)
  • 2021-01-01 11:37

    in your pubspec.yaml file, dependencies section. add intl dependency like so :

    dependencies:
      intl: ^0.16.0 // <-- dependency added here, remember to remove this comment
      // other dependencies . remove this comment too
    

    more about intl dependency here : intl

    This package provides internationalization and localization facilities, including message translation, plurals and genders, date/number formatting and parsing, and bidirectional text.

    and then at the top of your dart file import :

    import 'package:intl/intl.dart';
    

    now you can use DateFormat as you wish, here is an example :

    var date = DateTime.now();
    print(date.toString()); // prints something like 2019-12-10 10:02:22.287949
    print(DateFormat('EEEE').format(date)); // prints Tuesday
    print(DateFormat('EEEE, d MMM, yyyy').format(date)); // prints Tuesday, 10 Dec, 2019
    print(DateFormat('h:mm a').format(date)); // prints 10:02 AM
    

    there are many formats you can use with DateFormat, more details found here : https://api.flutter.dev/flutter/intl/DateFormat-class.html

    hope this helps. Thank you

    0 讨论(0)
提交回复
热议问题