字符串
使用单引号或双引号括起来的字符序列或者使用使用三个单引号或双引号括起来的多行字符串
String a = 'hello';
String b = "hello";
String d = """
This is a
multiline
string.
"""
- 字符串模版
var a = 123;
String b = 'this is a String: $a';
print(b);
- 字符串拼接
- 使用加号操作符 (+) 进行字符串的拼接
String fullName = firstName + ' ' + lastName;
print(fullName);
- 使用字符串插值(String interpolation)将变量的值嵌入到字符串中
String message = 'Hello, $name!';
- 转义符号
var a = 'hello word \n this is multi line';
print(a);
/**
hello word
this is multi line
*/
- 取消转义
var a = r'hello word \n this is multi line';
print(a); // hello word \n this is multi line
- 搜索
var a = 'This is a string';
print(a.contains('is')); // true
print(a.startsWith('This')); // true
print(a.endsWith('string')); // true
print(a.indexOf('a')); // 8
- 提取数据
var a = 'This is a string';
print(a.substring(0, 5)); // This
var b = a.split(' ');
print(b.length); // 4
print(b[0]); // This
- 大小写转换
var a = 'This is a string';
print(a.toLowerCase()); // this is a string
print(a.toUpperCase()); // THIS IS A STRING
- 裁剪 判断空字符串
print(' This is a string '.trim()); // This is a string
print(''.isEmpty); // true
- 替换部分字符
print('This is a string!'.replaceAll('string', 'document')); // This is a document!
- 字符串创建
var sb = StringBuffer();
sb..write('This')
..write(' is')
..write(' a')
..writeAll(['s', 'tr', 'ing!']);
print(sb.toString()); // This is a string!
日期时间
- 声明
- 获取当前时间
var now = new DateTime.now();
print(now); // 2023-05-17 16:41:01.085203
- 指定年月日
var dateTime = new DateTime(2023, 5, 17, 16, 42);
print(dateTime); // 2023-05-17 16:42:00.000
- 创建时间UTC
var now = DateTime.now().toUtc();
print(now); // 2023-05-17 08:47:25.755297Z
var dateTime = DateTime.utc(2023, 5, 17, 16, 42);
print(dateTime); // 2023-05-17 16:42:00.000Z
- 解析时间 IOS 8601
var dateTime1 = DateTime.parse('2023-05-17 16:42:30Z');
print(dateTime1); // 2023-05-17 16:42:30.000Z
var dateTime2 = DateTime.parse('2023-05-17 16:42:30+0800');
print(dateTime2); // 2023-05-17 08:42:30.000Z
- 时间增减量
var dateTime = DateTime.now();
print(dateTime); // 2023-05-17 16:58:16.474823
print(dateTime.add(Duration(minutes: 15))); // 2023-05-17 17:13:16.474823
print(dateTime.add(Duration(minutes: -15))); // 2023-05-17 16:43:16.474823
print(dateTime.subtract(Duration(minutes: 15))); // 2023-05-17 16:43:16.474823
print(dateTime.subtract(Duration(minutes: -15))); // 2023-05-17 17:13:16.474823
- 时间比较
final dateTime1 = DateTime(2023, 5, 17);
final dateTime2 = DateTime(2023, 4, 17);
print(dateTime1.isAfter(dateTime2)); // true
print(dateTime1.isBefore(dateTime2)); // false
print(dateTime1.isAtSameMomentAs(dateTime2)); // false
print(dateTime1.isUtc); // false
- 时间差
final dateTime1 = DateTime(2023, 5, 17);
final dateTime2 = DateTime(2023, 4, 17);
print(dateTime1.difference(dateTime2)); // 720:00:00.000000
- 时间戳
var now = new DateTime.now(); print(now.millisecondsSinceEpoch); // 1684314309889
print(now.microsecondsSinceEpoch); // 1684314309889130
- 时间戳转时间
int timeStamp1 = 1684314309889;
int timeStamp2 = 1684314309889130;
DateTime dateTime1 = DateTime.fromMillisecondsSinceEpoch(timeStamp1);
DateTime dateTime2 = DateTime.fromMicrosecondsSinceEpoch(timeStamp2);
print(dateTime1); // 2023-05-17 17:05:09.889
print(dateTime2); // 2023-05-17 17:05:09.889130