Dart 中的日期格式,包括 GMT
Date format in Dart which includes GMT
如何在 Dart 中将当前时间转换为 GMT/UTC 时间,类似于 javascript 方式:new Date().toUTCString()
:
Tue, 01 Nov 2011 19:06:35 GMT
我尝试了几个格式化程序(见下文),但没有用
//var f = DateFormat('E, d MMM yyyy HH:mm:ss z');
var f = DateFormat('E, d MMM yyyy HH:mm:ss');
var date = f.format(DateTime.now());
var f = DateFormat('EEE, d MMM yyyy HH:mm:ss');
var date = f.format(DateTime.now());
此输出日期格式为 2011 年 11 月 1 日星期二 19:06:35,不包括 GMT
将您的当前时间转换为 UTC 并将 " GMT"
附加到字符串。
import 'package:intl/intl.dart';
void main(List<String> arguments) async {
var f = DateFormat('E, d MMM yyyy HH:mm:ss');
var date = f.format(DateTime.now().toUtc()) + " GMT";
print(date);
}
使用任意时区(不仅仅是 GMT/UTC)
虽然它在文档中,但您不能使用 DateTime 创建具有任意时区的字符串,因为缺少时区支持/实现,并且自 2015 年以来就是一个 GitHub 问题。例如,您可以不要在字符串中显示不同的时区,因为在格式字符串中使用 z
不起作用:调用者得到 UnimplementedError
。查看 3 个相关的 GitHub 问题:one, two and three。
UnimplementedError
#0 _DateFormatPatternField.formatTimeZone (package:intl/src/intl/date_format_field.dart:640:5)
#1 _DateFormatPatternField.formatField (package:intl/src/intl/date_format_field.dart:381:16)
#2 _DateFormatPatternField.format (package:intl/src/intl/date_format_field.dart:244:12)
#3 DateFormat.format (package:intl/src/intl/date_format.dart:276:26)
#4 main (file:///Users/benbutterworth/datetime/bin/datetime.dart:11:16)
<asynchronous suspension>
#5 _startIsolate.<anonymous closure> (dart:isolate-patch/isolate_patch.dart:299:32)
#6 _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:168:12)
最后我找到了如下解决方法
String getUTCDate() {
try {
var f = DateFormat('E, d MMM yyyy HH:mm:ss');
var now = DateTime.now().toUtc();
return f.format(now) + ' GMT';
} catch (e) {
print('Error ******' + e.toString());
throw e;
}
}
如何在 Dart 中将当前时间转换为 GMT/UTC 时间,类似于 javascript 方式:new Date().toUTCString()
:
Tue, 01 Nov 2011 19:06:35 GMT
我尝试了几个格式化程序(见下文),但没有用
//var f = DateFormat('E, d MMM yyyy HH:mm:ss z');
var f = DateFormat('E, d MMM yyyy HH:mm:ss');
var date = f.format(DateTime.now());
var f = DateFormat('EEE, d MMM yyyy HH:mm:ss');
var date = f.format(DateTime.now());
此输出日期格式为 2011 年 11 月 1 日星期二 19:06:35,不包括 GMT
将您的当前时间转换为 UTC 并将 " GMT"
附加到字符串。
import 'package:intl/intl.dart';
void main(List<String> arguments) async {
var f = DateFormat('E, d MMM yyyy HH:mm:ss');
var date = f.format(DateTime.now().toUtc()) + " GMT";
print(date);
}
使用任意时区(不仅仅是 GMT/UTC)
虽然它在文档中,但您不能使用 DateTime 创建具有任意时区的字符串,因为缺少时区支持/实现,并且自 2015 年以来就是一个 GitHub 问题。例如,您可以不要在字符串中显示不同的时区,因为在格式字符串中使用 z
不起作用:调用者得到 UnimplementedError
。查看 3 个相关的 GitHub 问题:one, two and three。
UnimplementedError
#0 _DateFormatPatternField.formatTimeZone (package:intl/src/intl/date_format_field.dart:640:5)
#1 _DateFormatPatternField.formatField (package:intl/src/intl/date_format_field.dart:381:16)
#2 _DateFormatPatternField.format (package:intl/src/intl/date_format_field.dart:244:12)
#3 DateFormat.format (package:intl/src/intl/date_format.dart:276:26)
#4 main (file:///Users/benbutterworth/datetime/bin/datetime.dart:11:16)
<asynchronous suspension>
#5 _startIsolate.<anonymous closure> (dart:isolate-patch/isolate_patch.dart:299:32)
#6 _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:168:12)
最后我找到了如下解决方法
String getUTCDate() {
try {
var f = DateFormat('E, d MMM yyyy HH:mm:ss');
var now = DateTime.now().toUtc();
return f.format(now) + ' GMT';
} catch (e) {
print('Error ******' + e.toString());
throw e;
}
}