gpt4 book ai didi

flutter - 日期格式通过localizations进行本地化

转载 作者:行者123 更新时间:2023-12-03 03:37:09 24 4
gpt4 key购买 nike

我在实现DateFormat的国际化时遇到麻烦。

我使用下面的代码来获取日期格式:

var time = DateTime.fromMillisecondsSinceEpoch(item['time'] * 1000);
${DateFormat('EEEE, MMMM d').format(time)}

返回 Friday, February 6
将我的设备更改为另一种语言,继续返回 Friday, February 6

应用程序中其他字符串的国际化(手动翻译的字符串)正在按预期工作。

以下是初始化 localizationsDelegates的代码。
void main() {
runApp(MyApp());
}

class MyApp extends StatefulWidget {
MyApp();

@override
MyAppStateful createState() => MyAppStateful();
}

class MyAppStateful extends State<MyApp> {
MyAppStateful();

@override
Widget build(BuildContext context) {
return new MaterialApp(
localizationsDelegates: [
// ... app-specific localization delegate[s] here
GlobalMaterialLocalizations.delegate,
GlobalWidgetsLocalizations.delegate,
GlobalCupertinoLocalizations.delegate,
AppLocalizations.delegate,
],
supportedLocales: supportedLocales,
localeResolutionCallback: (locale, supportedLocales) {
for (var i in supportedLocales) {
if (i.languageCode == locale.languageCode) {
return i;
}
}
return supportedLocales.first;
},
home: isX ? Y() : Z(),
);
}
}

我的问题有两个:

1)如何获得当前日期的转换后的DateFormat?

2)是否可以本地化DateFormat格式?而不是强制它为: DateFormat('EEEE, MMMM d').format(time)}可以灵活地进行语言环境设置吗?
例如:在美国是 Weekday, Month Day,在法国是 Weekday Day Month

最佳答案

实际上,我不了解第二折,但是对于第一折,您可以使用如下方式:

var time = DateTime.fromMillisecondsSinceEpoch(item['time'] * 1000);
${DateFormat('EEEE, MMMM d', Localizations.localeOf(context).toString()).format(time)}

关于flutter - 日期格式通过localizations进行本地化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60097662/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com