Flutter格式化电话号码

工作上需求从手机的通讯录导入用户,取得用户的姓名和电话号码。

在pub上搜到star高的有contacts_service和flutter_contacts。但是从这两个库中取到的电话号码格式如下:

1 (391) 012-6666。

应该这两个库是外国人写的,没有考虑到中国的问题。最后找到了phone_numbers_parser这个库,可以把电话号码格式化为符合中国人的习惯。代码如下:

final cnPhone = PhoneNumber.fromNational('cn', '1 (391) 012-6666');
final rawPhone = cnPhone.nsn;
print('rawPhone:$rawPhone');//输出:13910126666

final formattedNsn = cnPhone.getFormattedNsn();
print('formatted: $formattedNsn'); //输出:139 1012 6666

easy_contact_picker这个库是国人写的,取到的电话号码格式没有问题。但是这个库在pub上的最新版不支持null safe,如果要支持null safe,需要用git方式引用:

https://github.com/liuweilyy/easy_contact_pickerhttps://github.com/liuweilyy/easy_contact_pickergit上的最新版是支持null safe的。

Flutter中,可以使用第三方库来格式化日期和时间。一个常用的库是`date_format`。首先,你需要在你的Flutter项目中引入这个包。可以在你的`pubspec.yaml`文件中添加以下依赖项: ``` dependencies: date_format: ^1.0.9 ``` 然后,在你的代码中引入这个包: ``` import 'package:date_format/date_format.dart'; ``` 接下来,你可以使用`formatDate`函数来格式化日期和时间。这个函数接受两个参数:一个是`DateTime`对象,表示要格式化的日期和时间;另一个是一个格式化字符串,用于指定输出的格式。 例如,如果你想将当前日期格式化为"yyyy-MM-dd HH:mm:ss"的格式,你可以这样写: ``` print(formatDate(DateTime.now(), \[yyyy, "-", mm, "-", dd, " ", HH, ":", nn, ":", ss\])); ``` 这将输出类似于"2022-01-01 12:34:56"的字符串,其中"yyyy"表示年份,"MM"表示月份,"dd"表示日期,"HH"表示小时,"mm"表示分钟,"ss"表示秒。 你还可以根据需要自定义格式化字符串,比如使用"yyyy年MM月dd日"的格式,或者使用不同的分隔符。只需根据你的需求修改格式化字符串即可。 希望这个解答对你有帮助! #### 引用[.reference_title] - *1* *2* *3* [Flutter中的日期,格式化日期与组件选择](https://blog.csdn.net/Android_XG/article/details/129382585)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值