坑!!!在 VsCode 中使用 Dart和Flutter
插件,必须打开项目源代码的根目录
(main.dart
所在目录)才有代码提示和相关检查与校验,单独的 .dart 文件
或者打开 多级目录
都是没有的(但是可能会突然有一小会又突然没有,薛定谔的提示0.0!),呜呜呜呜呜…搞得我一直以为是电脑环境的问题,重装了好几次 VsCode 插件与 Flutter SDK。
另外在 Flutter 开发的时候,发现 Dart 对于时间的处理比较麻烦,又不想使用外部插件,所以自己动手,写了一个简单的时间处理方法。
话不多说,直接上代码,还请各位大佬指正。
Dart 正则表达式时间处理
代码语言:javascript复制/// 建议封装一个工具类,定义此静态方法。
/// 格式化时间 @author: doubleam
/// 默认时间格式为 年-月-日 时:分:秒,可自定义,具体对应关系可参考 PHP 时间处理。
static String dateFormat(DateTime time, {String format = "yyyy-mm-dd hh:ii:ss"}) {
var dateObj = {
'm ': time.month, //月份
'd ': time.day, //日
'h ': time.hour, //小时
'i ': time.minute, //分
's ': time.second, //秒
};
RegExp yearReg = new RegExp(r"(y )");
if (yearReg.hasMatch(format)) {
var matches = yearReg.allMatches(format);
String match = "${matches.elementAt(0).group(1)}";
format = format.replaceAll(match, "${time.year}".substring(4 - match.length));
}
dateObj.forEach((key, value) {
RegExp replaceReg = new RegExp(r'(' "$key" ')');
if (replaceReg.hasMatch(format)) {
var matches = replaceReg.allMatches(format);
String match = "${matches.elementAt(0).group(1)}";
format = format.replaceAll(match, (match.length == 1) ? "$value" : "00$value".substring("$value".length));
}
});
return format;
}
另外博主有写一个人性化时间的 Dart 方法,可以参考文章Dart 常用方法。