魏少阳 f00022b770 1、卡跟指纹循环、胁迫、限时协议的删除逻辑的修改。
2、添加部分模块国际化
3、修改锁详情获取位置权限请求逻辑
2024-04-16 17:44:38 +08:00

178 lines
6.8 KiB
Dart

import 'package:date_format/date_format.dart';
import 'package:get/get.dart';
import 'pickers/time_picker/model/pduration.dart';
class DateTool {
/// 获取当前年月日时分秒
String getNowDateWithType(int type){
var dateStr = '';
// 获取当前时间对象
DateTime now = DateTime.now();
//获取当前时间的年
int year = now.year;
//获取当前时间的月
int month = now.month;
//获取当前时间的日
int day = now.day;
//获取当前时间的时
int hour = now.hour;
//获取当前时间的分
int minute = now.minute;
//获取当前时间的秒
int millisecond = now.millisecond;
switch(type){
case 1:
// 年月日时分秒
dateStr = '$year-${month.toString().padLeft(2, '0')}-${day.toString().padLeft(2, '0')} ${hour.toString().padLeft(2, '0')}:${minute.toString().padLeft(2, '0')}:${millisecond.toString().padLeft(2, '0')}';
break;
case 2:
// 年月日时分
dateStr = '$year-${month.toString().padLeft(2, '0')}-${day.toString().padLeft(2, '0')} ${hour.toString().padLeft(2, '0')}:${minute.toString().padLeft(2, '0')}';
break;
case 3:
// 年月日时整点
dateStr = '$year-${month.toString().padLeft(2, '0')}-${day.toString().padLeft(2, '0')} ${hour.toString().padLeft(2, '0')}:00';
break;
case 4:
// 年月日
dateStr = '$year-${month.toString().padLeft(2, '0')}-${day.toString().padLeft(2, '0')}';
break;
case 5:
// 时分秒
dateStr = '${hour.toString().padLeft(2, '0')}:${minute.toString().padLeft(2, '0')}:${millisecond.toString().padLeft(2, '0')}';
break;
case 6:
// 时分
dateStr = '${hour.toString().padLeft(2, '0')}:${minute.toString().padLeft(2, '0')}';
break;
case 7:
// 小时整点
dateStr = '${hour.toString().padLeft(2, '0')}:00';
break;
default:
dateStr = '$year-${month.toString().padLeft(2, '0')}-${day.toString().padLeft(2, '0')} ${hour.toString().padLeft(2, '0')}:${minute.toString().padLeft(2, '0')}:${millisecond.toString().padLeft(2, '0')}';
break;
}
// print("组合 $year-$month-$day $hour:$minute:$millisecond");
return dateStr;
}
/// 将时间戳传化为年月日时分秒 (年.月.日 时:分)
// String dateToYMDHNStringWithDot(String timestamp){
// int time = int.parse(timestamp);
// DateTime nowDate = DateTime.fromMillisecondsSinceEpoch(time);
// String appointmentDate = formatDate(nowDate, [yyyy,'.',mm,'.',dd,' ',HH,':',nn]);
// return appointmentDate;
// }
/// 根据传入的PDuration及时间类型获取时间字符串
/// type 1: 年月日时分(2023-01-01 12:00) 2: 年月日(2023-01-01) 3: 时分(12:00)
String getYMDHNDateString(PDuration p, int type){
var year = p.year == 0 ? DateTime.now().year : p.year;
var month = p.month == 0 ? DateTime.now().month : p.month;
var day = p.day == 0 ? DateTime.now().day : p.day;
var hour = p.hour == 0 ? DateTime.now().hour : p.hour;
var minute = p.minute == 0 ? DateTime.now().minute : p.minute;
var dateStr = '';
switch(type){
case 1:
// 年月日时分(2023-01-01 12:48)
dateStr = '$year-${month!.toString().padLeft(2, '0')}-${day.toString().padLeft(2, '0')} ${hour.toString().padLeft(2, '0')}:${minute.toString().padLeft(2, '0')}';
break;
case 2:
// 年月日(2023-01-01)
dateStr = '$year-${month!.toString().padLeft(2, '0')}-${day.toString().padLeft(2, '0')}';
break;
case 3:
// 时分(12:05)
dateStr = '${hour.toString().padLeft(2, '0')}:${minute.toString().padLeft(2, '0')}';
break;
case 4:
// 年月日时分(2023-01-01 12:00)整点
dateStr = '$year-${month!.toString().padLeft(2, '0')}-${day.toString().padLeft(2, '0')} ${hour.toString().padLeft(2, '0')}:00';
break;
case 5:
// 时分(12:00)整点
dateStr = '${hour.toString().padLeft(2, '0')}:00';
break;
default:
dateStr = '$year-${month!.toString().padLeft(2, '0')}-${day.toString().padLeft(2, '0')} ${hour.toString().padLeft(2, '0')}:${minute.toString().padLeft(2, '0')}';
break;
}
return dateStr;
}
/// 日期转化为时间戳
/// type 0: 12:00 1: 其他
int dateToTimestamp(String dateStr, int type){
int timestamp = 0;
if(type == 0){
List<String> timeParts = dateStr.split(":");
DateTime now = DateTime.now();
DateTime dateTime = DateTime(now.year, now.month, now.day, int.parse(timeParts[0]), int.parse(timeParts[1]));
timestamp = dateTime.millisecondsSinceEpoch;
}else{
DateTime dateTime = DateTime.parse(dateStr);
timestamp = dateTime.millisecondsSinceEpoch;
}
return timestamp;
}
/// 将时间戳传化为年月日 (年-月-日 时:分)
String dateToYMDHNString(String timestamp){
// Get.log('dateToYMDHNString timestamp: $timestamp');
int time = int.parse(timestamp);
if(timestamp.length == 10){
time = time * 1000;
}
DateTime nowDate = DateTime.fromMillisecondsSinceEpoch(time);
String appointmentDate = formatDate(nowDate, [yyyy,'-',mm,'-',dd,' ',HH,':',nn]);
return appointmentDate;
}
/// 将时间戳传化为年月日 (年-月-日)
String dateToYMDString(String timestamp){
int time = int.parse(timestamp);
DateTime nowDate = DateTime.fromMillisecondsSinceEpoch(time);
String appointmentDate = formatDate(nowDate, [yyyy,'-',mm,'-',dd]);
return appointmentDate;
}
/// 将时间戳传化为年月日 (时:分)
String dateToHNString(String timestamp){
int time = int.parse(timestamp);
DateTime nowDate = DateTime.fromMillisecondsSinceEpoch(time);
String appointmentDate = formatDate(nowDate, [HH,':',nn]);
// Get.log('timestamp:$timestamp dateToHNString appointmentDate: $appointmentDate');
return appointmentDate;
}
/// 获取是否超过现在的时间
bool compareTimeIsOvertime(int endTiem){
DateTime dateTime = DateTime.fromMillisecondsSinceEpoch(endTiem); // 将时间戳转换为 DateTime
DateTime now = DateTime.now(); // 获取当前时间
if (now.isAfter(dateTime)) {
print('The timestamp is after the current time.');
// 过期
return true;
} else {
print('The timestamp is not after the current time.');
return false;
}
}
/// 获取两个距离当前时间相差几天 1705132260000
int compareTimeGetDaysFromNow(int endTiem){
DateTime dateTime = DateTime.fromMillisecondsSinceEpoch(endTiem); // 将时间戳转换为 DateTime
DateTime now = DateTime.now(); // 获取当前时间
Duration difference = dateTime.difference(now); // 计算两个日期之间的差异
int days = difference.inDays; // 获取差异的天数
print('dateTime:$dateTime now:$now The difference is $days days.');
return days;
}
}