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

How to convert 24 hrs (13:00) to 12hrs (1:00 PM) in dart language/Flutter?

所以我正在尝试将 24 小时格式转换为 12 小时格式时间,例如,我的 输入 13:00output 应该是 1:00 PM 并且我没有找到正确的库来做到这一点所以任何人都可以提前帮助 me.Thanks。

首先拆分字符串

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

然后将第一个值转换为 int

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 国际框架帮助您将日期和时间格式化为您想要的类型。

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;
 }