Dart:如何获得当前区域设置的第一天?

时间:2017-08-07 17:41:11

标签: dart

可以通过

在Java中完成
com.ibm.icu.util.Calendar.getInstance(Locale alocale).getFirstDayOfWeek()

在Dart中有没有相同的方法来获取它?

6 个答案:

答案 0 :(得分:4)

刚刚找到它:

https://github.com/dart-lang/intl/blob/master/lib/date_symbol_data_local.dart

搜索“FIRSTDAYOFWEEK”,并不难弄清楚如何使其工作。

答案 1 :(得分:2)

使用Flutter,您只能使用:

MaterialLocalizations.of(context).firstDayOfWeekIndex;

答案 2 :(得分:1)

我不知道如何使它工作。鲍勃,如果您可以分享您的解决方案,那就太好了。

这里是我在Flutter中使用的

GlobalMaterialLocalizations.delegate
        .load(locale)
        .then((MaterialLocalizations materialLocalizations)
    {
        print("${materialLocalizations.firstDayOfWeekIndex}");
    });

答案 3 :(得分:1)

这东西对我有用

DateTime today = DateTime.now();             
_firstDayOfTheweek = today.subtract(new Duration(days: today.weekday));

答案 4 :(得分:0)

要获取一周的第一天和一周的最后一天:

 print("today is day: ${DateTime.now().weekday}");
print(
    "monday is day: ${DateTime.now().subtract(Duration(days: DateTime.now().weekday - 1))}");
print(
    "sunday is day: ${DateTime.now().add(Duration(days: DateTime.now().weekday - 1))}");

答案 5 :(得分:0)

经过长时间的漫长搜索,我发现jiffy解决了我的问题。您可以将其与Intl一起使用,并获得所需的内容。

只需在main.dart中将其初始化

void main() async {
  Intl.defaultLocale = Intl.systemLocale;   // Define the default locale as System Locale
  await Jiffy.locale(Intl.defaultLocale);   // Define Jiffy locale
  runApp(MyApp());
}

然后,您可以使用Jiffy函数获取一周的开始和结束

print(Jiffy(date).startOf(Units.WEEK)); 
print(Jiffy(date).endOf(Units.WEEK));

参考:https://pub.dev/packages/jiffy