我正在try 显示日历,以便用户通过单击预订按钮来 Select 预订日期.预订日的日期显示在按钮下方. 我正在使用DateTime类.

我有两个问题: 我只想显示预订日的日期.我不需要确切的时间和时间,我也不知道怎么做.我试过"Silt and a Range",但我做不到.

2-你知道我的代码中的toLocal()方法是怎么用的吗?(‘预订日期:${seltedtime.toLocal()}’),),这到底有没有必要?

here is the result of my code:

以下是我的全部代码:

import "package:flutter/material.dart";

void main() => runApp(const MyApp());

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  @override
  Widget build(BuildContext context) {
    return const MaterialApp(
      home: MyPage(),
    );
  }
}

class MyPage extends StatefulWidget {
  const MyPage({super.key});

  @override
  State<MyPage> createState() => _Example();
}

class _Example extends State<MyPage> {
  DateTime selectedtime = DateTime.now();

  datePicker(BuildContext context) async {
    final DateTime? picked = await showDatePicker(
        context: context,
        initialDate: selectedtime,
        firstDate: DateTime(2023),
        lastDate: DateTime(2025));

    if (picked != null && picked != selectedtime) {
      setState(() {
        selectedtime = picked;
      });
    }
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: const Text('HDBOOKS'),
      ),
      body: Column(
        mainAxisAlignment: MainAxisAlignment.center,
        children: [
          Center(
            child: ElevatedButton(
                onPressed: () => datePicker(context),
                child: const Text('reserve')),
          ),
          const SizedBox(
            height: 36,
          ),
          Text('reservation date : ${selectedtime.toLocal()}'),
        ],
      ),
    );
  }
}

以下是我想要解决Split问题时的代码:

//当我使用Split时,我需要显示一系列内容,但我不知道如何在Split中使用Range. 它会引发错误!

          Text(
              'reservation date : ${selectedtime.toLocal()}'.split(' ')[0 : 3]),  

请帮帮我谢谢!🙏

推荐答案

这里有两个解决方案,第一个(最简单的)是将DateTime对象转换为一个字符串,然后拆分它并获得第一部分,如下所示:

final DateTime now = DateTime.now();
now.toString().split(' ')[0]

这样就可以了,但是如果你想要更多的控制权,我建议你读这篇answer.

Flutter相关问答推荐

如何在应用程序启动时解析和加载JSON文件?

想更新ListView上的索引点击块Flutter

我有一个问题:类型';()=>;Null';不是类型转换中类型';(Int)=>;void';的子类型

如何防止onTapCancel由子元素触发?

如何处理Flutter Riverpod异步通知器中的状态和数据库

Android Studio扩展控件上未加载Google map

flutter Listview构建器溢出

参数类型void Function()无法分配给参数类型void Function(LongPressEndDetails)?

NotifierProvider 每次更新都会重新构建并且值不更新

如果其他Provider 的帐户已存在,如何阻止用户登录?

如何在Flutter中的textField中在可编辑文本和前缀图标之间添加空格?

Flutter Flame OS 错误:使用音频文件 .wav 时出现该进程无法访问该文件,因为它正被另一个进程使用

无法使用 bloc 更新 ListView.builder 的特定时间

Agora VideoCall 不显示远程视频网格

如何格式化网址?

如何从 Flutter Slider Widget 中移除发光效果?

如何在 flutter 的 onChanged(更改字符)处更改 TextField 边框 colored颜色 ?

Flutter Websockets MacOS:相同的代码在调试模式下有效,但在发布模式下无效:(操作系统错误:提供了 node 名或服务名..)

如何在 flutter 中制作这种类型的扩展瓦片

如何在Flutter 中专注于列表视图中最新添加的项目