Flutter,DateTime.now()在我的代码中不起作用

时间:2019-08-16 05:35:30

标签: flutter dart

我一直在为iOS和Android开发应用程序。

下面的代码构成实时屏幕,显示当前时间。

1。我确认a.unsqueeze(1) * b 在两个操作系统上均可工作。

2。我还确认它可以在实际的Android设备和Android模拟器上正常工作。

但是每次我尝试在iOS(仿真器和实际设备)上进行测试时,DateTime.now()总是得到一个_timeString

此代码有什么问题?我不明白

这是我提前解决问题的环境。

VMware工作站15 Player,Xcode 10.3,Android Studio 3.4.2

null

2 个答案:

答案 0 :(得分:0)

尝试更改日期格式

收件人

MM / dd / yyyy hh:mm:ss

答案 1 :(得分:0)

我运行了您的代码,没有任何更改。 (但是添加了一个入口点) 并且它按预期工作。

有关intl软件包的任何其他信息都将有所帮助。这是我的整个应用以及下面的结果。 我的依存关系是intl: ^0.15.8

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

void main()
{
  runApp(SampleApp());
}

class SampleApp extends StatelessWidget {
  // This widget is the root of your application.
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Sample App',
      home: TableLayout(),
    );
  }
}


class TableLayout extends StatefulWidget {
  @override
  _TableLayoutState createState() => _TableLayoutState();
}

class _TableLayoutState extends State<TableLayout> {
  String _timeString;

  String _formatDateTime(DateTime dateTime) {
    return DateFormat('MM/dd/yyyy HH:mm:ss').format(dateTime);
  }

  @override
  void initState() {
    _timeString = _formatDateTime(DateTime.now());
    Timer.periodic(Duration(milliseconds: 1000), (Timer t) => _getTime());
    super.initState();
  }

  void _getTime() {
    DateTime _now = DateTime.now();
    final String formattedDateTime = _formatDateTime(_now);
    if (this.mounted) {
      setState(() {
        _timeString = formattedDateTime;
      });
    }
  }

  @override
  Widget build(BuildContext context) {
    return
      Scaffold(
          body:
          Container(
              child:
              Text("\n\n\n\n${_timeString}")
          )
      );
  }
}

App running on IOS simulator