我正在嘗試將日期時間字串從一種格式轉換為另一種格式。我嘗試使用 intl 包。但我不知道如何將此字串轉換為另一種格式。我從 api 獲取的日期時間字串是14/12/2021 03:34:03 PM. 我想在我的應用程式中這樣顯示它(只有一次)03:34 pm(也想制作 PM 小寫字母)。
uj5u.com熱心網友回復:
如果您不介意以正則運算式的方式進行
import 'package:intl/intl.dart';
void main() {
var s = "14/12/2021 12:34:03 PM";
print(formatDateTimeString(s));
}
String formatDateTimeString(String s) {
RegExp regexp = RegExp("(AM|PM)");
// finds either AM or PM in string and converts it to lowercase
RegExpMatch match = regexp.firstMatch(s)!;
String end = match.group(0)!.toLowerCase();
// change datetime format to HH:mm as desired
DateTime dt = DateFormat("d/MM/yyyy HH:mm:ss").parse(s);
DateFormat newFormat = DateFormat("HH:mm");
String formattedS = newFormat.format(dt);
// append lowercase ampm
formattedS = " " end;
return formattedS;
}
uj5u.com熱心網友回復:
您可以通過以下方式獲得它,
dateFormat() {
String dateStart = '14/12/2021 03:34:03 PM';
DateFormat inputFormat = DateFormat("dd/MM/yyyy hh:mm:ss a");
DateTime input = inputFormat.parse(dateStart);
String dateOutput = DateFormat("hh:mm a").format(input);
return dateOutput.toLowerCase();
}
uj5u.com熱心網友回復:
String formattedDate = DateFormat('yyyy-MM-dd – kk:mm').format(now);

uj5u.com熱心網友回復:
請查看,它適用于所有格式化的日期時間,您只需傳遞當前和所需的日期格式
import 'package:intl/intl.dart';
void main() {
var data = "14/12/2021 03:34:03 PM";
print(getFormattedDateFromFormattedString(
value: data,
currentFormat: "yyyy/MM/dd HH:mm:ss a",
desiredFormat: "hh:mm a").toLowerCase()); //03:34 pm
}
String getFormattedDateFromFormattedString(
{required value,
required String currentFormat,
required String desiredFormat,
isUtc = false}) {
String formattedDate = "";
if (value != null || value.isNotEmpty) {
try {
DateTime dateTime =
DateFormat(currentFormat).parse(value, isUtc).toLocal();
formattedDate = DateFormat(desiredFormat).format(dateTime);
} catch (e) {
print("$e");
}
}
// print("Formatted date time: $formattedDate");
return formattedDate;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/380699.html
