gpt4 book ai didi

android - 如何在当前时间中添加分钟数并从当前时间中减去它以运行计时器?

转载 作者:行者123 更新时间:2023-11-29 18:49:41 25 4
gpt4 key购买 nike

我正在尝试将分钟数添加到 android 中的当前时间。

我想将简单日期格式用作("EEE, d MMM yyyy HH:mm:ss Z")

首先我想解释一下我的概念是什么。

  1. 有一个 Recyclerview 列表,在每一行中,用户选择一个时间。假设我选择 50 分钟。这 50 分钟被添加到当前时间并存储在数据库中。

我用过代码...

 String t = time.getText().toString();
int ti = Integer.parseInt(t);
@SuppressLint("SimpleDateFormat") SimpleDateFormat sdf = new SimpleDateFormat("EEE, d MMM yyyy HH:mm:ss Z");
Calendar now = Calendar.getInstance();
String a = now.get(Calendar.HOUR_OF_DAY) + ":" + now.get(Calendar.MINUTE) + ":" + now.get(Calendar.SECOND);
now.add(Calendar.MINUTE,ti);
a = now.get(Calendar.HOUR_OF_DAY) + ":" + now.get(Calendar.MINUTE) + ":" + now.get(Calendar.SECOND);
adminList = mFirestore.collection("AdminList");
Map<String,Object> k = new HashMap<>();
k.put("order",order);
k.put("status","Pending");
k.put("hotel_name",hotel);
k.put("user_id",userid);
k.put("time",a);
adminList.document(order).update(k);
  1. 用户从数据库中获取这个时间,然后从当前每秒时间中减去它,以便列表显示为倒数计时器。

代码是。

 void updateTimeRemaining(String text) {
if (o.getOrder().equalsIgnoreCase("order1")) {
try {
TimeZone.setDefault(TimeZone.getDefault());
String stop = ol.getTime();
@SuppressLint("SimpleDateFormat") SimpleDateFormat format = new SimpleDateFormat("EEE, d MMM yyyy HH:mm:ss Z");
Calendar end_date = Calendar.getInstance();
end_date.setTime(format.parse(stop));

final Calendar today = Calendar.getInstance();
timeDiff = end_date.getTimeInMillis() - today.getTimeInMillis();
if (timeDiff > 0) {
long seconds = timeDiff / 1000 % 60;
long minutes = timeDiff / (60 * 1000) % 60;
long hours = timeDiff / (60 * 60 * 1000) % 24;
//long days = (int) timeDiff / (24 * 60 * 60 * 1000);
//long days = TimeUnit.MILLISECONDS.toDays(timeDiff);


String left = "";
//if (days > 0)
// left += days + " " + /*context.getString(R.string.txt_day) +*/ ":";
if (hours > 0)
left += hours + " " +/* context.getString(R.string.txt_hour) + */":";
if (minutes > 0)
left += minutes + " " +/* context.getString(R.string.txt_minute) + */":";

left += seconds + " " /*+ context.getString(R.string.txt_second)*/;

String finalLeft = left;
text = finalLeft;
time.setText("00:" + finalLeft);

} else {
time.setText("Finished");
}
// }


} catch (Exception ex) {
ex.printStackTrace();
}
// }
}

所以我的最后一个问题是,

如何将当前时间加 50 分钟,格式为 "EEE, d MMM yyyy HH:mm:ss Z"

最佳答案

不要让自己头疼,使用像 Jodatime 或 ThreeTenABP 这样的库。

您的代码可以像这样简单:

DateTimeFormatter dateFormatter = DateTimeFormat
.forPattern("EEE, d MMM yyyy HH:mm:ss Z");

LocalTime now = new LocalTime();
LocalTime then = now.plusMinutes(50);

Log.d(TAG, dateFormatter.print(then));

在 Java 8 下管理日期和时间是一个不可读的不可靠的困惑;您现在可能已经意识到了。

关于android - 如何在当前时间中添加分钟数并从当前时间中减去它以运行计时器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51184286/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com