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
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;
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';
}
}
}
7条答案
按热度按时间w8rqjzmb1#
使用'EEEE'作为日期模式
别忘了导入
查看更多信息:https://pub.dev/documentation/intl/latest/intl/DateFormat-class.html
e1xvtsh32#
在你的pubspec。yaml文件,依赖项部分。添加intldependency如下:
更多关于intl依赖的信息:intl
这个包提供了国际化和本地化工具,包括消息翻译、复数和性别、日期/数字格式和解析以及双向文本。
然后在dart文件导入的顶部:
现在你可以随心所欲地使用DateFormat了,下面是一个例子:
有许多格式,你可以使用DateFormat,更多的细节在这里找到:https://api.flutter.dev/flutter/intl/DateFormat-class.html
希望这对你有帮助。谢谢你
bmp9r5qi3#
你可以用。weekday方法来找出这一天。例如:
这将返回工作日的数字,例如星期二是2,如下所示
jm81lzqq4#
您可以使用下面的方法来实现所需的结果。return语句可以根据您的喜好进行更改。(这是如果你想跳过使用intl包)
您可以将上述方法作为
The produces the result -周六,11 Apr 2020
px9o7tmv5#
扩展是很好的解决方案。你也可以在工作日做。在使用之前,请调用一次DateTimeExtension以查看getMonthString()
lpwwtiir6#
我认为最好的解决方案是使用
intl
包,如其他答案所示,但如果你想编写自己的解决方案,你可以这样做:或者你可以扩展DateTime类,做一些类似的事情:
可以在DartPad1和DartPad2中测试这些解决方案
dgsult0t7#
如果你想获得本地化的名称,防弹解决方案专用工作日,你需要有点棘手。
让我们设计API:
我们当然知道我们可以从
DateTime
得到工作日:它返回一个ISO值(Monday = 1,Sunday = 7)
我们还知道,要获得“Monday”,“Tuesday”(或任何本地化值),我们可以这样做:
那么如何获得
int weekday
的名称呢?我们应该用
weekday
以某种方式创建DateTime
,然后相应地格式化它。我们还必须为
weekday
传递一个符合ISO的值,该值在<1,7>
范围内。解决方案: