当前位置: 首页 > 知识库问答 >
问题:

如何从Dart/Flutter中的字符串格式格式化DateTime?

孟乐逸
2023-03-14

我有一个格式为“Mon May 31 2021 23:59:59 GMT 0000(协调世界时)”的日期,但需要将其转换为本地时区并解析为日期时间格式。我该怎么做?

共有2个答案

龙俊英
2023-03-14

无法使用日期时间对象直接分析此字符串。相反,请使用此功能 -

DateTime getLocalTimeStamp(String timeData) {
  Map<String, int> months = {"January": 1, "February": 2, "March": 3, "April": 4, "May": 5, "June": 6, "July": 7, "August": 8, "September": 9, "October": 10, "November": 11, "December": 12};
  List<String> splittedTime = timeData.split(" ").toList();
  String monthString = months[splittedTime[1]].toString().length < 10
     ? "0"+months[splittedTime[1]].toString()
     : months[splittedTime[1]].toString();
  String cleanedDate = splittedTime[3]+"-"+monthString+"-"+splittedTime[2]+"T"+splittedTime[4];
  DateTime parsedDate = DateTime.parse(cleanedDate);
  return parsedDate;
}

像这样的东西-

void main() {
  DateTime res = getLocalTimeStamp("Mon May 31 2021 23:59:59 GMT+0000");
  print(res.day);
}
宰父深
2023-03-14

在“颤动”中处理日期和时间时,可以使用“日期时间”类。

要将utc时间转换为本地时间,您可以执行以下操作:

var myUTCTime = DateTime.utc(2021, DateTime.may, 31);
var localTime = myUTCTime.toLocal();

以下是声明时间的格式:

DateTime.utc(int year, [int month = 1, int day = 1, int hour = 0, int minute = 0, int second = 0, int millisecond = 0, int microsecond = 0])

随意在dartpad中运行上述代码,并使用打印语句查看输出!

 类似资料:
  • 主要内容:指定最小输出宽度,指定对齐方式,指定小数精度我们在《 第一个Python程序——在屏幕上输出文本》中讲到过 print() 函数的用法,这只是最简单最初级的形式,print() 还有很多高级的玩法,比如格式化输出,这就是本节要讲解的内容。 熟悉C语言 printf() 函数的读者能够轻而易举学会 Python print() 函数,它们是非常类似的。 print() 函数使用以 开头的转换说明符对各种类型的数据进行格式化输出,具体请看下表。

  • Parameter Position参数位置 Type参数类型 Required必需 Default默认 Description描述 1 string Yes n/a This is what format to use. (sprintf) 使用的格式化方式 This is a way to format strings, such as decimal numbers and such. Us

  • Go对字符串格式化提供了良好的支持。下面我们看些常用的字符串格式化的例子。 package main import "fmt" import "os" type point struct { x, y int } func main() { // Go提供了几种打印格式,用来格式化一般的Go值,例如 // 下面的%v打印了一个point结构体的对象的值 p := p

  • 3.5. 格式化字符串 Python 支持格式化字符串的输出 。尽管这样可能会用到非常复杂的表达式, 但最基本的用法是将一个值插入到一个有字符串格式符 %s 的字符串中。 在 Python 中, 字符串格式化使用与 C 中 sprintf 函数一样的语法。 例 3.21. 字符串的格式化 >>> k = "uid" >>> v = "sa" >>> "%s=%s" % (k, v) 'uid=s

  • 由来 我一直对Slf4j的字符串格式化情有独钟,通过{}这种简单的占位符完成字符串的格式化。于是参考Slf4j的源码,便有了StrFormatter。 StrFormatter.format的快捷使用方式为StrUtil.format,推荐使用后者。 使用 //通常使用 String result1 = StrFormatter.format("this is {} for {}", "a", "

  • 点击按钮后,我尝试在< code>Text小部件中显示当前的< code>DateTime。下面的作品,但我想改变格式。 目前的做法 结果 问题 如何删除部分?