我试图显示一个日历,以便用户通过单击预订按钮选择预订日期。预订日的日期显示在按钮下方。我使用DateTime类。
我有两个问题:1-我想“只是”显示预订日的日期。我不需要确切的时间和时间,我不知道如何做到这一点。我试图与“溢出和范围”,但我不能。
2-你知道我的代码中的toLocal()方法(Text('reservation date:${selectedtime.toLocal()}'),)的用法吗?
x1c 0d1x的数据
下面是我的全部代码:
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中使用范围。这会引发错误!
Text(
'reservation date : ${selectedtime.toLocal()}'.split(' ')[0 : 3]),
型
请帮帮我,谢谢!🙏
3条答案
按热度按时间eagi6jfj1#
这里有两种解决方案。第一种(更简单)是将
DateTime
对象转换为字符串,然后拆分它并像这样获得第一部分:字符串
这就可以了;但是,如果你想要更多的控制,我建议你阅读这个answer。
vcirk6k62#
1.你可以使用
intl
包中的DateFormat
类来格式化。字符串
toLocal()
确保设备的本地时间,有些国家也使用夏令时。zwghvu4y3#
你也可以使用这个:
字符串
通过这个你可以得到日,月,年,小时,分钟等