Flutter之获取、选择日期和时间

1,163 阅读1分钟

1、获取当前日期

    DateTime dateTime = DateTime.now();
    print(dateTime);
    print("${dateTime.year}-${dateTime.month}-${dateTime.day} ${dateTime.hour}:${dateTime.minute}:${dateTime.second}");

打印结果如下所示:

datetime_1.png

2、获取当前日期的时间戳

    DateTime dateTime = DateTime.now();
    print(dateTime.millisecondsSinceEpoch);

打印结果如下所示:

datetime_2.png

3、日期转换成时间戳

    DateTime dateTime = DateTime(2024, 03, 12);
    print(dateTime.millisecondsSinceEpoch);

4、日期字符串转换成时间戳

    print(DateTime.parse("2024-03-12"));
    print(DateTime.parse("2024-03-12 10:06:30"));
    DateTime dateTime = DateTime.parse("2024-03-12 10:06:30");
    print(dateTime.millisecondsSinceEpoch);

5、时间戳转换成日期

    DateTime dateTime = DateTime(2024, 03, 12);
    int unixtime = dateTime.millisecondsSinceEpoch;
    print(DateTime.fromMillisecondsSinceEpoch(unixtime));

6、时间加减

    DateTime dateTime = DateTime.now();
    print(dateTime);
    print(dateTime.add(const Duration(minutes: 30)));
    print(dateTime.add(const Duration(minutes: -30)));

上面的代码表示在当前时间的基础上加30分钟和减30分钟,其他同理。

7、选择日期

    var dateTime = await showDatePicker(
        context: context,
        initialDate: DateTime.now(),//初始选择日期
        firstDate: DateTime(DateTime.now().year - 100),//开始选择日期
        lastDate: DateTime(DateTime.now().year + 100),//结束选择日期
        );

效果图如下所示:

1.png

如果需要显示中文,需要在GetMaterialApp中加上如下代码

   localizationsDelegates: const [
        GlobalMaterialLocalizations.delegate,
        GlobalWidgetsLocalizations.delegate,
      ],
      supportedLocales: const [
        Locale('zh', 'CH'),
        Locale('en', 'US'),
      ],

showDatePicker中可以添加如下代码,也可以不添加

   locale:const Locale('zh')

添加后效果图如下所示

2.png

8、选择时间

   var timeOfDay =
        await showTimePicker(context: context, initialTime: TimeOfDay.now());

效果图如下所示:

3.png