如何在日期时间类中仅显示日期?

问题描述 投票:0回答:1

我正在尝试显示一个日历,以便用户通过单击预订按钮来选择预订日期。按钮下方显示预订日的日期。 我正在使用 DateTime 类。

我有两个问题: 1-我想“仅”显示预订日期。我不需要确切的时间和时间,而且我不知道该怎么做。我尝试过“split and a range”,但我做不到。

2-你知道我的代码中的 toLocal() 方法 (Text('reservation date : ${selectedtime.toLocal()}'),) 有什么用途吗?有必要吗?

这是我的整个代码:

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 问题时的代码:

//当我使用拆分时,我需要显示一系列内容,但我不知道如何在拆分中使用范围。 它会引发错误!

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

请帮助我谢谢! 🙏

flutter dart datetime calendar datetimepicker
1个回答
0
投票

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.