此问题在此处已有答案:
Java 8 LocalDateTime deserialized using Gson(6个回答)
26天前关闭。
在android studio中,我试图使用内部存储将日历视图的输入保存为LocalDateTime作为JSON,但我遇到了一个问题。我创建了calenderView并将其设置为当您通过用户界面更改它时获取日期,如下所示。
CalendarView dateInput = findViewById(R.id.calenderDate);
dateInput.setOnDateChangeListener(new CalendarView.OnDateChangeListener() {
@Override
public void onSelectedDayChange(CalendarView view, int year, int month, int dayOfMonth) {
inputtedDate = LocalDate.of(year, month + 1, dayOfMonth);
}
});
字符串
然后,我从包含用户输入时间的文本框中获取字符串,然后使用.of方法将它们组合为一个DateTime。
String timeString = timeInput.getText().toString();
LocalTime inputtedTime = LocalTime.parse(timeString);
LocalDateTime inputtedDateTime = LocalDateTime.of(inputtedDate, inputtedTime);
型
然后使用Gson将其保存到内部存储。
public void WriteJsonToStorage(){
Gson gson = new GsonBuilder().setPrettyPrinting().create();
String json = gson.toJson(bookingToWrite);
FileOutputStream fos = null;
fos = context.openFileOutput("SingleBooking.txt", Context.MODE_PRIVATE);
fos.write(json.getBytes());
}
型
在调试器中,我可以看到这是当我选择一个日期并手动将超时写为'14:56'时它所拾取的
2023-12-14T14:56
但是当我之后检查文件时,我检查的dateTime里面什么都没有。
{
"bookingDateTime": {},
"bookingName": 0,
"peopleTotal": 5,
"tableNumber": 0
}
型
我在这里是否遗漏了一个步骤,以便在json中正确存储日期和时间?
1条答案
按热度按时间u59ebvdq1#
如果你想在一个特定的模式和locale中获取日期和时间,你可以使用以下方法:
字符串