我只需要以类似的格式将 DateTime 获取到 API,例如“Tue Oct 15 2024 00:00:00 GMT+0800(新加坡标准时间)”。我使用 timezone/timezone.dart 和 timezone/data/latest.dart 包使用下面的代码,但没有成功。
final currentDateTime = tz.TZDateTime.from(
tz.TZDateTime.now(tz.local).copyWith(
hour: 0,
minute: 0,
second: 0,
millisecond: 0,
),
tz.local,
);
使用 intl 如下:
DateTime date = DateTime.now().toLocal(); // Get the current local date and time
String timeZoneOffset = _formatTimeZoneOffset(date.timeZoneOffset);
String formattedDate = DateFormat('EEE MMM d yyyy HH:mm:ss').format(date) + ' GMT$timeZoneOffset';
//获取formatTimeZoneOffset的辅助函数
String _formatTimeZoneOffset(Duration offset) {
final hours = offset.inHours.abs().toString().padLeft(2, '0');
final minutes = (offset.inMinutes.abs() % 60).toString().padLeft(2, '0');
final sign = offset.isNegative ? '-' : '+';
return '$sign$hours$minutes';
}