Flutter日期时间

这篇博客介绍了Flutter中如何使用日期选择器显示日期和时间,以及如何处理当前时间、UTC时间和时间戳转换。示例代码展示了如何使用`flutter_datetime_picker`和`date_format`库进行日期选择、时间格式化和时间戳与日期之间的转换。此外,还简单提及了UTC时间的概念,并提供了时间戳转日期的静态方法。
摘要由CSDN通过智能技术生成

1、日期选择器

  //日期选择
  flutter_datetime_picker: ^1.5.1
  //日期格式化
  date_format: ^2.0.4
// showDatePicker、showTimePicker、showDateTimePicker
TextButton(
    onPressed: () {
      DatePicker.showDateTimePicker(context, showTitleActions: true,
          // minTime: DateTime(2020, 3, 5),
          // maxTime: DateTime(2022, 6, 7),
          onChanged: (date) {
        //print('change $date');
      }, onConfirm: (date) {
        //print(date.runtimeType);
        setState(() {
          // 格式化并返回给状态
          taskAddModel.selectDateValue = formatDate(date,
              [yyyy, '-', mm, '-', dd, ' ', HH, ':', nn, ':', ss]);
        });
      }, currentTime: DateTime.now(), locale: LocaleType.zh);
    },
    child: Text(
      taskAddModel.selectDateValue,
      style: TextStyle(color: Colors.blue),
    ))

2、当前时间

print(DateTime.now());//2021-08-18 09:47:55.568969 精确到微秒
// 想看下转成时间戳的方法,后面加了个点后出来一堆属性方法
print(DateTime.now().day);//18 返回当前日?
print(DateTime.now().hashCode);//857823714 哈希值?不知道怎么用
print(DateTime.now().hour);//9 小时
print(DateTime.now().isUtc);//false Utc还没学
print(DateTime.now().microsecond);//微秒 16位
print(DateTime.now().microsecondsSinceEpoch);//微秒时间戳
print(DateTime.now().millisecond);//毫秒 13位
print(DateTime.now().millisecondsSinceEpoch);//毫秒时间戳
print(DateTime.now().toUtc());//转换成Utc时间

3、UTC时间

世界统一时间,领导提了下,不知道怎么操作,做个tag

4、时间戳转日期

  // 将获取的时间戳转换为日期格式
  // 使用substring截取字符串,我用date_format试试
  static String getTimeTransform(date) {
    DateTime _getTimea =
        DateTime.fromMicrosecondsSinceEpoch(int.parse(date) * 1000 * 1000);
    var _getTime = _getTimea.toLocal().toString().substring(0, 19);
    return _getTime;
  }
// 后台返回的是10位的秒时间戳
// 提交时issuedTime:(DateTime.now().millisecondsSinceEpoch / 1000).toInt(),
  static String getTimeTransform(date) {
    DateTime _getTime =
        DateTime.fromMicrosecondsSinceEpoch(int.parse(date) * 1000 * 1000);
    // var _getTime = _getTimea.toLocal().toString().substring(0, 19);
    return formatDate(
        _getTime, [yyyy, '-', mm, '-', dd, ' ', HH, ':', nn, ':', ss]);
  }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值