如何在dart语言/Flutter中将24小时(13:00)转换为12小时(1:00 PM) ? &g



所以我试图将24小时格式转换为12小时格式的时间,就像我的输入一首和应该是下午1:00我没有找到正确的图书馆,所以有人能帮我吗?提前感谢。

首先拆分字符串

var splitTime = inputString.split(":");

然后将第一个值转换为整型

int hour = int.parse(splitTime[0]);

检查小时是否大于12

String suffix = "am";
if(hour >= 12)
{
hour -= 12;
suffix = "pm";
}

总结使用这个方法

String twelveHourVal(String inputString)
{
var splitTime = inputString.split(":");
int hour = int.parse(splitTime[0]);
String suffix = "am";
if(hour >= 12)
{
hour -= 12;
suffix = "pm";
}
String twelveHourVal = '$hour:${splitTime[1]} $suffix';
return twelveHourVal;
}

Dart intl框架可以帮助您将日期和时间格式化为您想要的类型。

https://pub.dev/packages/intl

的例子:

DateFormat("h:mma").format(date);

input 24hrs--0:30
output 12hrs--12:30 am

main(){
String t = "0:30";
print("input 24hrs--$t");
String c = (twelveHourVal(t));
print("output 12hrs--$c");
}
String twelveHourVal(String inputString)
{
var splitTime = inputString.split(":");
int hour = int.parse(splitTime[0]);
String suffix = "am";
if(hour > 12)
{
hour -= 12;
suffix = "pm";
}
else if(hour == 0)
{
hour =12;
suffix = "am";
}
else if(hour == 12)
{
hour = 12;
suffix = "pm";
}

String twelveHourVal = '$hour:${splitTime[1]} $suffix';
return twelveHourVal;
}