我正在使用日期選擇器和時間選擇器對話框來選擇要保存到 Firestore 檔案中的日期和時間。我還使用 javaLocalDateTime在本地存盤我從選擇器對話框中選擇的日期和時間。將LocalDateTime我創建的變數Map<String, Object>放入 Firestore,將日期和時間保存為Map欄位,而不是時間戳欄位。我在這里看到了類似的問題,在這個網站,但該溶液是用LocalDateTime的前身Date。我不打算LocalDateTime僅僅為了實作我想要做的事情而用舊版本替換。如果你們知道如何使用LocalDateTime.
LocalDateTime 初始化:
LocalDateTime localDateTime = LocalDateTime.now();
int yr = localDateTime.getYear();
int mos = localDateTime.getMonthValue();
int dy = localDateTime.getDayOfMonth();
int hr = localDateTime.getHour();
int min = localDateTime.getMinute();
日期和時間選擇器對話框:
DatePickerDialog datePickerDialog = new DatePickerDialog(this, new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker datePicker, int year, int month, int day) {
TimePickerDialog timePickerDialog = new TimePickerDialog(DateTimeChoose.this, new TimePickerDialog.OnTimeSetListener() {
@Override
public void onTimeSet(TimePicker timePicker, int hour, int minute) {
localDateTime = LocalDateTime.of(year, month 1, day, hour, minute);
DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("'Elections Will End On:\n'MMM dd, yyyy'\n@ 'hh:mm a");
electionsText.setText(dateTimeFormatter.format(localDateTime));
}
}, hr, min, false);
timePickerDialog.show();
}
}, yr, mos-1, dy);
datePickerDialog.getDatePicker().setMinDate(System.currentTimeMillis() - 1000);
datePickerDialog.show();
將日期和時間存盤到 Firestore:
CollectionReference admin = FirebaseFirestore.getInstance().collection("Admin");
Map<String, Object> electionEndTime = new HashMap<>();
electionEndTime.put("electionEndTime", localDateTime);
admin.get()
.addOnSuccessListener(new OnSuccessListener<QuerySnapshot>() {
@Override
public void onSuccess(QuerySnapshot queryDocumentSnapshots) {
String adminEmail = "";
List<DocumentSnapshot> documentSnapshots = queryDocumentSnapshots.getDocuments();
for (DocumentSnapshot documentSnapshot : documentSnapshots) {
adminEmail = documentSnapshot.getId();
}
admin.document(adminEmail).set(electionEndTime, SetOptions.merge());
}
});
Firestore 檔案的螢屏截圖:

uj5u.com熱心網友回復:
您不能使用LocalDateTime物件,因為它不是受支持的資料型別。您可以使用的是Date物件。您可以像在代碼中一樣簡單地撰寫這樣的值。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/362039.html
標籤:爪哇 安卓 火力基地 谷歌云平台 谷歌云firestore
