您的位置:

Flutter获取当前时间的方法

一、Dart DateTime类介绍

要获取当前时间,我们需要使用Dart的DateTime类,它表示一个UTC时间,可以用于表示任何时区的时间。DateTime类提供了许多有用的方法和属性,比如我们可以通过now()静态方法获得当前时间。

示例代码如下:

{% raw %}
DateTime now = DateTime.now();
print(now);
{% endraw %}

运行以上代码,我们可以得到类似如下的输出结果:

{% raw %}
2022-03-07 09:21:51.405781
{% endraw %}

二、格式化时间字符串

DateTime类提供了许多有用的方法,其中最重要的方法之一是format()方法,该方法可以将一个DateTime对象格式化为一个字符串,以便于我们进行显示和打印。我们可以使用format()方法来指定要显示的日期时间格式。

例如,我们可以将当前时间格式化为“年-月-日 时:分:秒”的格式:

{% raw %}
DateTime now = DateTime.now();
String formattedDate = DateFormat('yyyy-MM-dd kk:mm:ss').format(now);
print(formattedDate);
{% endraw %}

输出结果如下:

{% raw %}
2022-03-07 09:21:51
{% endraw %}

我们可以看到,我们成功将当前时间格式化为指定的字符串格式。

三、获取指定时区时间

通过DateTime类,我们还可以获取指定时区的时间,只需要将DateTime对象传递给intl包中的DateFormat,并指定时区即可。

示例代码如下:

{% raw %}
DateTime now = DateTime.now();
String formattedDate = DateFormat('yyyy-MM-dd hh:mm:ss', 'GMT+8').format(now);
print(formattedDate);
{% endraw %}

上面的代码获取当前时间并将其转换为我们所在地点“GMT+8”时区的时间,并按“年-月-日 时:分:秒”的顺序进行格式化。在格式字符串中使用小写“hh”表示12小时格式,而大写“HH”表示以24小时格式呈现。

四、计算时间差

在处理时间时,我们有时需要计算时间差。DateTime类也提供了计算差异的方法——difference()

示例代码如下:

{% raw %}
DateTime now = DateTime.now();
DateTime birthday = DateTime(2000, 1, 1);
Duration difference = now.difference(birthday);
print('${difference.inDays}天 ${difference.inHours % 24}小时');
{% endraw %}

上面的代码计算了当前时间与2000年1月1日之间的时间差,并格式化输出以显示天数和小时数。

五、结论

在Flutter中获取当前时间是相对简单的,只需要使用DateTime类的now()方法并根据需要进行格式化,甚至可以根据需要在不同的时区中获取时间。在处理时间差时,我们可以使用DateTime类的difference()方法。通过掌握这些知识,我们可以有效地在我们的Flutter应用程序中处理时间。