试图弄清楚如何输入AWSDateTime。我不想使用Java8。
createDate需要Temporal.DateTime
com.amplifyframework.core.model.temporal
public static final class Temporal.DateTime
private final @ModelField(targetType="AWSDateTime", isRequired = true) Temporal.DateTime createDate;有没有其他方法可以让我做到这一点?
Date input = new Date();
LocalDate date = input.toInstant().atZone(ZoneId.systemDefault()).toLocalDate(); --> this requires Java 8
Todo todo = Todo .builder()
.createDate(date)
.build();
Amplify.DataStore.save(todo,
result -> Log.i("MyAmplifyApp", "Created successfully"),
error -> Log.e("MyAmplifyApp", "Error creating", error)发布于 2021-02-12 05:46:20
我最终使用了DateUtils中的函数。
https://docs.aws.amazon.com/appsync/latest/devguide/scalars.html
AWSDateTime
格式为YYYY-MM-DDThh:mm:ss.sssZ的扩展ISO 8601日期和时间字符串。
String date1 = com.amazonaws.util.DateUtils.formatISO8601Date(new Date());
Todo todo = Todo .builder()
.createDate(new Temporal.DateTime(date1))
.build();注意:这将以GMT时间存储日期。
发布于 2021-03-05 23:25:41
Temporal.DateTime有一个公共构造函数,它接受java.util.Date和以秒为单位的偏移量:
public DateTime(@NonNull java.util.Date date, int offsetInSeconds)你可以这样使用它:
Date date = new Date();
int offsetMillis = TimeZone.getDefault().getOffset(date.getTime());
int offsetSeconds = (int) TimeUnit.MILLISECONDS.toSeconds(offsetMillis);
Temporal.DateTime temporalDateTime = new Temporal.DateTime(date, offsetSeconds);
Todo todo = Todo.builder()
.createDate(temporalDateTime)
.build();https://stackoverflow.com/questions/66161674
复制相似问题