我尝试将日期解析为java,例如“2022-02-02”。时间LocalDate。
为什么传递给标量类的值被包装成大括号?我该怎么解决这个问题?
我为java配置了标量。时间本地日期:
@Component
public class DateScalar extends GraphQLScalarType {
public DateScalar() {
super("Date", "java.time.LocalDate", new Coercing() {
@Override
public Object serialize(Object o) throws CoercingSerializeException {
return DateTimeFormatter.ofPattern("yyyy-MM-dd").format((LocalDate) o);
}
@Override
public Object parseValue(Object o) throws CoercingParseValueException {
return LocalDate.parse(o.toString());
}
@Override
public Object parseLiteral(Object o) throws CoercingParseLiteralException {
if (o == null) {
return null;
}
return parseValue(o.toString());
}
});
}
}
以下是问题:
mutation {
createEvent(createEventRequest: {
name: "test",
description: "test description",
userId: 1,
participants: [{
firstName: "first",
lastName: "last"
}],
location: {
street: "street",
streetNumber: "streetNumber",
country: "country"
},
duration: {
entireDay: false,
recurringDate: false,
start: "2018-09-03"
}
}) {
id
name
description
participantResponses {
id
firstName
lastName
}
locationResponse {
id
street
streetNumber
country
}
durationResponse {
id
start
end
entireDay
recurringDate
}
userResponse {
id
firstName
lastName
email
}
}
}
错误说文本'StringValue{value='2018-09-03'}'无法在索引0处解析。我真的不明白为什么这仍然被包装到大括号中。
如果需要,这是graphqls文件:
type Query {
user(id : Int) : UserResponse,
userByEmail(email : String) : [UserResponse]
}
type Mutation {
createUser(createUserRequest: CreateUserRequest) : UserResponse
createEvent(createEventRequest: CreateEventRequest) : EventResponse
}
input CreateEventRequest {
name: String,
description: String,
participants: [Participant],
location: Location,
duration: Duration,
userId: Int
}
input Duration {
start:Date,
end:Date,
entireDay:Boolean ,
recurringDate:Boolean
}
input Location {
street:String ,
streetNumber:String,
country:String
}
input Participant {
firstName: String,
lastName: String
}
type UserResponse {
id: Int,
firstName: String,
lastName: String,
email: String
}
type EventResponse {
id: Int,
name: String,
description: String,
participantResponses: [ParticipantResponse],
locationResponse: LocationResponse,
durationResponse: DurationResponse,
userResponse: UserResponse
}
type DurationResponse {
id: Int
start: Date
end: Date
entireDay: Boolean
recurringDate: Boolean
}
type LocationResponse {
id: Int,
street: String ,
streetNumber: String ,
country: String
}
type ParticipantResponse {
id: Int,
firstName: String,
lastName: String
}
input CreateUserRequest {
firstName: String!,
lastName: String!,
email: String!
}
scalar Date
GraphQL将日期字符串作为全文发送,正如您将其声明为日期一样。或者,您可以将start声明为String,并在javaend解析字符串todate。
input Duration {
start: String,
end: String,
entireDay:Boolean ,
recurringDate:Boolean
}
parseLiteral
方法参数实际上是解析GraphQL查询生成的抽象语法树的一个节点。方法实现应该从节点中提取文本值:
@Override
public LocalDate parseLiteral(Object o) throws CoercingParseLiteralException {
if (o instanceof StringValue) {
var value = ((StringValue) o).getValue();
try {
return LocalDate.parse(value);
} catch (DateTimeParseException e) {
throw new CoercingParseLiteralException("Cannot parse [" + value + "] to LocalDate", e);
}
} else {
throw new CoercingParseLiteralException(
"Expected literal of type StringValue but was " + o.getClass());
}
}
这是我的用户类,我要在我的数据库中保存符合ISO的日期时间。 这是我的球衣控制器: 我如何使用像泽西岛这样的日期时间格式?是否可以发送一个datatime并自动创建Java8日期时间对象?
我正在尝试转换java。util。日期至java。时间本地日期: 但是,当有例如22:25的一天时间时,我选择ZoneId,例如:。 即将推出的本地日期将有不同的日期(因为该区域增加了6小时),例如欧洲/明斯克: 我想在结果的LocalDate中保留与该实例相同的日期。一些方法如何解决这个问题?我想可能有几种方法。
问题内容: 有人可以向我展示一段解析此日期的Java代码: 2009-08-05 进入此GMT日期: 2009/217:00:00 ==== 到目前为止,我有: 但它不起作用 问题答案: 这是您要寻找的格式:
如何将字符串日期格式转换为日期,我有格式为以下格式的日期字符串: 接下来,我尝试了,但没有运气。 所有上述语句都存在解析错误。
本文向大家介绍Java日期与时间类原理解析,包括了Java日期与时间类原理解析的使用技巧和注意事项,需要的朋友参考一下 这篇文章主要介绍了Java日期与时间类原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 基础知识 日期: 类似于 2018-12-12 时间: 类似于 2018-12-12 12:12:12 时刻: 类似于 2018-12
问题内容: 有谁知道如何将JS dateTime转换为MySQL datetime?还有一种方法可以向JS日期时间添加特定的分钟数,然后将其传递给MySQL日期时间? 问题答案: 尽管JS确实拥有足够的基本工具来执行此操作,但它相当笨拙。