flutter如何获取东八区时间戳
在Flutter开发中,如何获取当前东八区(北京时间)的时间戳?我尝试使用DateTime.now(),但获取到的是UTC时间,不知道该如何转换为东八区时间戳。希望能提供一个具体的代码实现方法。
2 回复
使用DateTime.now().toUtc().add(Duration(hours: 8)).millisecondsSinceEpoch获取东八区时间戳。
更多关于flutter如何获取东八区时间戳的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
在Flutter中获取东八区时间戳,可以通过以下方法实现:
方法一:使用DateTime类
// 获取当前东八区时间戳(毫秒)
int getEast8Timestamp() {
final now = DateTime.now().toUtc().add(const Duration(hours: 8));
return now.millisecondsSinceEpoch;
}
// 获取当前东八区时间戳(秒)
int getEast8TimestampInSeconds() {
final now = DateTime.now().toUtc().add(const Duration(hours: 8));
return now.millisecondsSinceEpoch ~/ 1000;
}
方法二:指定时区创建DateTime
int getEast8Timestamp() {
final now = DateTime.now().toUtc();
return now.millisecondsSinceEpoch + 8 * 60 * 60 * 1000;
}
使用示例:
void main() {
print('东八区时间戳(毫秒):${getEast8Timestamp()}');
print('东八区时间戳(秒):${getEast8TimestampInSeconds()}');
}
说明:
- 东八区比UTC时间快8小时,所以需要在UTC时间基础上加8小时
millisecondsSinceEpoch返回的是毫秒时间戳~/ 1000可将毫秒转换为秒时间戳- 这种方法适用于大多数需要东八区时间戳的场景

