当前位置: 首页 > 知识库问答 >
问题:

颤振:DateTime.now不反映手动设置的时区

许俊雅
2023-03-14

为了测试不同时区的影响,我更改了日期

我的手机已连接到Wifi,但未登录到移动网络。

这是预期的行为吗?我不确定下面的“本地”指的是什么:

构造一个DateTime实例,其中包含本地时区中的当前日期和时间。

还有其他方法可以获得电话时间吗?

颤振医生

[√] Flutter (Channel stable, v1.5.4-hotfix.2, on Microsoft Windows, locale en-US)
    • Flutter version 1.5.4-hotfix.2 at <path>\flutter
    • Framework revision 7a4c33425d (8 weeks ago), 2019-04-29 11:05:24 -0700
    • Engine revision 52c7a1e849
    • Dart version 2.3.0 (build 2.3.0-dev.0.5 a1668566e5)

[√] Android toolchain - develop for Android devices (Android SDK version 28.0.3)
    • Android SDK at <path>\android-sdk
    • Android NDK location not configured (optional; useful for native profiling support)
    • Platform android-28, build-tools 28.0.3
    • Java binary at: <path>\android-studio\jre\bin\java
    • Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1343-b01)
    • All Android licenses accepted.

[√] Android Studio (version 3.4)
    • Android Studio at <path>\android-studio
    • Flutter plugin version 34.0.2
    • Dart plugin version 183.5901
    • Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1343-b01)

[√] VS Code (version 1.35.1)
    • VS Code at <path>\VSCode\code.exe
    • Flutter extension version 3.1.0

[√] Connected device (1 available)
    • Wileyfox Swift • b6d5f2fa • android-arm64 • Android 7.1.2 (API 25)

• No issues found!

示例应用程序

import 'dart:async';
import 'package:flutter/material.dart';

void main() => runApp(MyApp());

class DateTimeWidget extends StatefulWidget {
  DateTimeWidget({Key key}) : super(key: key);

  @override
  State<StatefulWidget> createState() => _DateTimeWidgetState();
}

class _DateTimeWidgetState extends State<DateTimeWidget> {
  DateTime time;
  Timer updateTimer;

  _DateTimeWidgetState() : time = DateTime.now();

  void timerFunction(Timer timer) {
    setState(() {
       this.time = DateTime.now();
    });
  }

  @override
  void initState() {
    super.initState();
    this.updateTimer = Timer.periodic(Duration(seconds: 1), this.timerFunction);
  }

  @override
  void dispose() {
    this.updateTimer.cancel();
    super.dispose();
  }

  @override
  Widget build(BuildContext context) {
    return Text("${this.time.toString()}");
  }
}

class MyApp extends StatelessWidget {
  // This widget is the root of your application.
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Date Time',
      home: Scaffold(
        body: Container(
          child: Center(
            child: DateTimeWidget(),
          ),
        ),
      ),
    );
  }
}

共有1个答案

上官树
2023-03-14

在 Android 11 设备上的代码中使用 Flutter 2.0,即使更改了设备,该应用也能正确反映设备的时间。如果问题仍然存在,则可能是一个错误,最好在此处发布 https://github.com/flutter/flutter/issues/

 类似资料:
  • 我一直试图设置一个颤振路径,所以我不需要每次都做一个临时路径。我是新的使用终端和Unix(Mac用户也),不明白如何设置我的路径与说明在网站上。我不完全确定我的flutter SDK在哪里,这也没有帮助。想一步一步地知道该怎么做。

  • 我无法在尝试设置平台后修复颤振问题,问题如下所示: https://i.stack.imgur.com/uddfn.png

  • 我试图使用de_DE作为语音到文本的区域设置speech_recognizer但识别器返回法语。 使用en_US,它工作正常。 我是用iPhone测试的,没有模拟器。 我如何才能实现这一点?

  • 我正在使用firebase云功能向特定用户发送通知。这是我从函数发送的有效负载。 我正在使用firebase_messaging(flutter package:https://pub.dartlang.org/packages/firebase_messaging)接收通知,并且我已经编写了onMessage、onLaunch和onResume方法的代码。 因此,当我使用Admin SDK发送消

  • 目前我正在尝试颤振网页,我需要在颤振主频道工作。但是,后来我需要继续我的其他项目。在他们身上,我正在研究颤振稳定通道。 但是,每当我使用命令“flutter channel stable”或“fluter channel master”切换我的flutter通道时,它每次都会重新下载sdk和其他工具。 目前,我已经下载了稳定的颤振sdk和稳定的dart sdk。 我已将它们移动到“FlutterS