Мы все знаем, что каждая страна имеет разные часовые пояса в зависимости от ее местоположения на Земле. Итак, мы обсудим, как изменить дату и время на этот часовой пояс, просто передав два аргумента. Мы преобразуем дату и время в время PST.
Пошаговая реализация
Шаг 1: Мы просто создадим 1 флаттер-проект с помощью команды
Dart
В этом проекте мы получим 1 шаблонный код. Мы изменим его с помощью 1 плавающей кнопки. При нажатии на кнопку мы изменим часовой пояс, а также отобразим часовые пояса и дату и время в виджете «Текст».
Шаг 2. Добавьте этот пакет
Dart
flutter pub add instant
Шаг 3. Добавьте каркас и колонну в тело на первом экране.
Dart
import
'package:flutter/material.dart'
;
import
'package:instant/instant.dart'
;
// Flutter code sample for [Timezone change template].
void
main() {
runApp(
const
TimezoneChangeTemplate());}
class
TimezoneChangeTemplate extends StatelessWidget {
const
TimezoneChangeTemplate({super.key});
@override
Widget build(BuildContext context) {
return
MaterialApp(
title:
"Convert Timezone Template"
,
theme: ThemeData(
primaryColor:Colors.green,
appBarTheme:
const
AppBarTheme(backgroundColor: Colors.green)
),
home:
const
MyHomePage(),
);
}
}
class
MyHomePage extends StatelessWidget {
const
MyHomePage({super.key});
@override
Widget build(BuildContext context) {
return
Scaffold(
appBar: AppBar(
title:
const
Text(
'Timezone Change'
),
),
body:Column(
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.center,
children:[
])
);
}
}
Шаг 4. Добавьте 3 текста: 1 для даты и времени обычного часового пояса, второй для изменения часового пояса в PDT и для изменения часового пояса в PST без переменной даты и времени.
Dart
Column(children:[
// Normal Datetime text
Text(
"Date Time Before:"
)
// Datetime text according to
// timezone entered or choosen
,Text(
"Date Time After changing in PDT:"
),
// Datetime text according
// to timezone entered o
,Text(
"Date Time After changing in PST:"
),
])
Шаг 5. Добавьте тексты с переменной даты и времени.
Dart
Column(children:[
// Normal Datetime text
Text(
"Date Time Before: ${DateTime.now()}"
),
// Datetime text according to PST timezone entered or choosen
Text(
"Date Time After changing: ${curDateTimeByZone(zone: "
PST
")}"
),
// Datetime text according to PDT timezone
Text(
"Date Time After changing: ${curDateTimeByZone(zone: "
PDT
")}"
),
])
Вот объяснение этой функции
Имя функции: dateTimeToZone
Он преобразует любую дату и время в дату часового пояса.
- зона: — напишите стандартный часовой пояс заглавными буквами, например IST,PST.
- date time: — переменная даты и времени, которую вы хотите изменить на другой часовой пояс.
Образец кода:
Dart
void
main() {
print(dateTimeToZone(zone:
"PST"
, datetime: DateTime(2023)));
}
Имя функции: курдатетимебизоне
Он изменит текущую дату и время на часовой пояс, указанный в зоне.
зона : напишите стандартный часовой пояс заглавными буквами, например IST,PST.
Образец кода:
Dart
// current DateTime in PST timezone
print(curDateTimeByZone(zone: «PST», ));
Имя функции: formatTime
Он форматирует время из объекта времени даты.
- time: в качестве значения будет использоваться объект даты и времени.
- divider: он изменит разделитель между часами, минутами и секундами. По умолчанию:.
- format: это изменит формат времени. По умолчанию — ЧЧММСС.
Образец кода:
Dart
print(formatTime(
time
: SanFran,
divider:
"/"
,
format:
"HHMM"
,
is24hr:
true
));
// prints format time in PDT
Имя функции: formatDate
Он форматирует дату из объекта даты и времени.
- time: в качестве значения будет использоваться объект даты и времени.
- divider: он изменит разделитель между годом, месяцем и датой. По умолчанию — /.
- format: это изменит формат времени. По умолчанию — ММДДГГГГ.
Образец кода:
Dart
var SanFran =
curDateTimeByZone(zone:
'PDT'
);
print(formatDate(date: SanFran,
divider:
"/"
,
format:
"DDMMYYYY"
));
// prints format date in PDT
Полный код
Dart
import
'package:flutter/material.dart'
;
import
'package:instant/instant.dart'
;
// Flutter code sample for [Timezone change template].
void
main() {
print(dateTimeToZone(zone:
"PST"
, datetime: DateTime(2023)));
print(curDateTimeByZone(zone:
"PST"
, ));
var SanFran =
curDateTimeByZone(zone:
'PDT'
);
print(formatTime(
time
: SanFran,
divider:
"/"
,
format:
"HHMM"
,
is24hr:
true
));
// prints format time in PDT
print(formatDate(date: SanFran,
divider:
"/"
,
format:
"DDMMYYYY"
));
// prints format date in PDT
runApp(
const
TimezoneChangeTemplate());}
class
TimezoneChangeTemplate extends StatelessWidget {
const
TimezoneChangeTemplate({super.key});
@override
Widget build(BuildContext context) {
return
MaterialApp(
title:
"Convert Timezone Template"
,
theme: ThemeData(
primaryColor:Colors.green,
appBarTheme:
const
AppBarTheme(backgroundColor: Colors.green)
),
home:
const
MyHomePage(),
);
}
}
class
MyHomePage extends StatelessWidget {
const
MyHomePage({super.key});
@override
Widget build(BuildContext context) {
return
Scaffold(
appBar: AppBar(
title:
const
Text(
'Timezone Change'
),
),
body:Column(
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.center,
children:[
Text(
"Date Time Before: ${DateTime.now()}"
),
//Normal Datetime text
Text(
"Date Time After changing in PST: ${curDateTimeByZone(zone: "
PST
")}"
),
Text(
"Date Time After changing in PDT: ${curDateTimeByZone(zone: "
PDT
")}"
),
])
);
}
}
Выход: