如何获取Dart中星期几的名称

时间:2019-01-25 19:44:36

标签: dart flutter

有人知道如何从DateTime中提取星期几的名称?

ej:

DateTime date = DateTime.now();
String dateFormat = DateFormat('dd-MM-yyyy hh:mm').format(date);

结果->星期五

5 个答案:

答案 0 :(得分:4)

使用“ EEEE”作为日期格式

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

请检查此以获取更多信息:https://docs.flutter.io/flutter/intl/DateFormat-class.html

答案 1 :(得分:2)

在您的 pubspec.yaml 文件的依存关系部分中。 像这样添加 intl 依赖项:

# pass to ReactJS app
upstream demotool {
    server 0.0.0.0:3000/demo;
}

server {
        listen 80;
        server_name avt1.example.com www.avt1.example.com;
        location /demo {
                proxy_pass demotool;
                proxy_set_header Host $host;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }
}

更多关于intl依赖的信息: https://pub.dev/packages/intl#-installing-tab-

,然后在您的dart文件导入的顶部:

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

现在您可以根据需要使用DateFormat,下面是一个示例:

import 'package:intl/intl.dart';

DateFormat可以使用多种格式,更多详细信息请参见: https://api.flutter.dev/flutter/intl/DateFormat-class.html

希望这会有所帮助。 谢谢

答案 2 :(得分:1)

您可以仅使用.weekday方法来查找day。 例如:

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

这将返回星期几,例如,星期二是2,如下所示

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;

答案 3 :(得分:1)

您可以使用以下方法获得所需的结果。您可以根据自己的喜好更改return语句。 (这是如果您要跳过使用intl包的情况)

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

您可以调用上述方法

dateFormatter(DateTime.now())

产生结果-2020年4月11日,星期六

答案 4 :(得分:0)

扩展是很好的解决方案。您也可以在工作日进行。

extension DateTimeExtension on DateTime {
  String getMonthString() {
    switch (month) {
      case 1:
        return 'Jan.';
      case 2:
        return 'Feb.';
      case 3:
        return 'Mar.';
      case 4:
        return 'Apr.';
      case 5:
        return 'May';
      case 6:
        return 'Jun.';
      case 7:
        return 'Jul.';
      case 8:
        return 'Aug.';
      case 9:
        return 'Sept.';
      case 10:
        return 'Oct.';
      case 11:
        return 'Nov.';
      case 12:
        return 'Dec.';
      default:
        return 'Err';
    }
  }
}