【问题标题】:How to convert "MM/DD/YYYY" to TZDateTime format如何将“MM/DD/YYYY”转换为 TZDateTime 格式
【发布时间】:2022-01-25 19:54:23
【问题描述】:

我正在我的 todo 应用程序中实现颤振本地通知插件,我想安排 特定日期和时间的通知,日期选择器和时间选择器显示日期如下:12/26/2021 和时间如下:03:17 PM,如何将其转换为 TZDateTime 格式

【问题讨论】:

  • 请参阅How do I convert a date/time string to a DateTime object in Dart?,了解如何将String 解析为DateTime 对象。从那里,使用TZDateTime.fromDateTime 转换为TZDateTime
  • 从 dateTime 转换为 TZDateTime 时它会询问位置,我应该指定什么作为位置。
  • 我无法为您回答这个问题。您是想要使用 TZDateTime 对象的人,这意味着您想要使用特定时区的 DateTime 版本不是UTC,也不是当地时间。你还没有指明你想要的时区。如果您只关心本地时间或 UTC 时间,那么您可以使用普通的 DateTime 对象(或者,如果您确实需要 TZDateTime 对象,请使用 TZDateTime.utcTZDateTime.local 构造函数)。

标签: flutter timezone flutter-local-notification


【解决方案1】:

导入时区

import 'package:timezone/data/latest_all.dart' as tz;
import 'package:timezone/timezone.dart' as tz;


tz.initializeTimeZones();
tz.TZDateTime.parse(tz.local, "2012-12-26 03:17:00");
//tz.UTC

或者

tz.TZDateTime.from(DateTime(2021,12,26,03,07), tz.local);
//tz.UTC

【讨论】:

  • 如何将下午 3:40 转换为 03:17:00 格式
  • 下午 3:40 字符串或日期时间的类型是什么?
  • 日期和时间都是字符串
  • 检查此代码link
【解决方案2】:

试试下面的代码

 TZDateTime tzDateTime;
    String dateTime = getFormattedDateFromFormattedString(
        value: "12/26/2021 3:16 PM",
        currentFormat: "MM/dd/yyyy hh:mm a",
        desiredFormat: "yyyy-MM-dd HH:mm:ss");

    tz.initializeTimeZones();
    tzDateTime = tz.TZDateTime.parse(tz.local, dateTime);

    print(tzDateTime);
}

// format your given time
  getFormattedDateFromFormattedString(
      {value, String currentFormat, String desiredFormat, isUtc = true}) {
    DateTime dateTime = DateTime.now();
    if (value != null || value.isNotEmpty) {
      try {
        dateTime = DateFormat(currentFormat).parse(value, isUtc).toLocal();
      } catch (e) {
        print("$e");
      }
    }
    return dateTime.toString();
  }

【讨论】:

  • 我得到错误:_TypeError(类型'Null'不是类型'TZDateTime'的子类型)
  • 我想你错过了什么,请查看dartpad
  • 这会返回一个字符串但它应该在TZDateTime中,所以我尝试了TZDateTime.parse方法,它要求位置,我应该为位置做什么
  • 希望对您有所帮助,请查看answer
  • RohithNambiar 检查我的答案
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-10-22
  • 2011-03-18
  • 1970-01-01
  • 1970-01-01
  • 2016-06-21
相关资源
最近更新 更多