该abs()
函数在调用负数文字时无效。
var y = -123.11.abs(); // prints -123.11
但其他功能,例如floor()
工作正常
var y = -123.11.floor(); // prints -123
如果我将负数文字用括号括起来,它就可以正常工作
var y = (-123.11).abs(); // prints 123.11
任何有助于理解这种行为的帮助表示赞赏。
我使用的飞镖版本是 Dart VM version: 2.2.1-dev.0.0.flutter-571ea80e11 (Mon Mar 4 19:30:53 2019 +0000) on "windows_x64"
更新:
注意:在floor()
@HighPerformanceMark 指出的负数上应用时无法正常工作
下面列出了已知的格式
dd/mm/yyyy (01/01/2015)
d/m/yyyy (1/1/2015)
dd/mm/yy (01/01/15)
d/m/yy (1/1/15)
Run Code Online (Sandbox Code Playgroud)
其他变体将破折号( - ),点(.)或空格作为字段分隔符.
我正在考虑为每个模式创建一个正则表达式以保持其可维护性,但不确定是否有更好的解决方案.请分享是否有更好的解决方案.
更新: 日期是大文本的一部分,在从文本中提取潜在的日期列表之前,我无法使用DateTime.TryParseExact.