我想使用LocalDateTime.parse()方法使用日期格式yyyy-MM-dd HH:mm:ss解析日期,但实际得到的是格式为yyyy-MM-ddTHH的日期:mm:ss 。我不需要那个' T'。请参阅下面的代码
LocalDateTime.parse("2016-10-31 23:59:59", DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
我得到的结果是2016-10-31T23:59:59。看到' T'。 ' T'导致问题,以便我无法将其持久保存到我的数据库。我尝试将值保存在datetime
类型的列中;我收到了错误 - org.springframework.jdbc.BadSqlGrammarException: PreparedStatementCallback; bad SQL grammar
。
查看正在运作的值
VALUES('US','101','test','firstname','middleName','preferedName','lastName',
'1989-01-01','M',1,'11221123','test@test.com','address1','address2','Bloomingdale','IL','US','689850',
1,1,'11111','2016-12-31 23:59:59')
(最后一个值中没有T
)
无效:
VALUES('US','101','test','firstname','middleName','preferedName','lastName',
'1989-01-01','M',1,'11221123','test@test.com','address1','address2','Bloomingdale','IL','US','689850',
1,1,'11111','2016-12-31T23:59:59')
(最后一个值为T
)。
答案 0 :(得分:5)
LocalDateTime不存储为字符串,而是存储为对象。
您正在获得" T" ,因为.toString()方法默认返回ISO格式,如下所述: https://docs.oracle.com/javase/8/docs/api/java/time/LocalDateTime.html
toString
public String toString()
将此日期时间输出为字符串,例如2007-12-03T10:15:30。
输出将是以下ISO-8601格式之一:
uuuu-MM-dd' T' HH:mm
uuuu-MM-dd' T' HH:mm:ss
uuuu-MM-dd' H&H:mm:ss.SSS
uuuu-MM-dd' HH:mm:ss.SSSSSS
uuuu-MM-dd' HH:mm:ss.SSSSSSSSS
使用的格式是输出完整值的最短格式 省略的部分隐含为零的时间。
根据需要输出格式功能。
@Component({
selector: 'my-app',
template: `
<input id="foo" type="checkbox" [ngModel]="foo" (ngModelChange)="fooChange($event)"><label for="foo">{{foo}}</label>
`,
})
export class App {
filters:[];
foo=true
fooChange(newValue:boolean){
this.foo=newValue; // we need to make it change !
setTimeout(()=>{
if(newValue===false)
this.foo=true; // if newValue is false, foo becomes true
else
this.foo = newValue; // otherwise, do change
})
}
}