我试图将以下内容解析String为DateTimec#中的对象:
DateTime.ParseExact("20101108 230125", "yyyyMMdd hhmmss", null)
Run Code Online (Sandbox Code Playgroud)
虽然值看起来正确,但该ParseExact方法只是给我以下内容:
字符串未被识别为有效的DateTime.
任何人都可以告诉我为什么以及如何解析上面的字符串而不必以手动方式进行?不ParseExact应该是为了这种场合吗?
我有一个字符串形式的日期时间字符串:
2011-10-23T08:00:00-07:00
Run Code Online (Sandbox Code Playgroud)
我如何解析此字符串作为日期时间对象.
我做了以下阅读文档:
date = datetime.strptime(data[4],"%Y-%m-%d%Z")
Run Code Online (Sandbox Code Playgroud)
我得到了错误
ValueError: time data '2011-10-23T08:00:00-07:00' does not match format '%Y-%m-%d%Z'
Run Code Online (Sandbox Code Playgroud)
这很清楚.
但我不知道如何阅读这种格式.
有什么建议.谢谢
编辑:另外,我必须补充,我关心的只是日期部分
我在java中解析日期时遇到了麻烦,我有一个奇怪的日期时间格式.如何解析2013-04-03T17:04:39.9430000+03:00java中的日期时间以在java中格式化dd.MM.yyyy HH:mm?
我的日期时间必须来自具有时区偏移量的前端: 2017-07-04T06:00:00.000+01:00
我不能和杰克逊反序列化。错误是:
无法解析文字“ 2017-07-04T06:00:00.000 + 01:00”,未解析的文字位于索引23;
我试图谷歌所有的解决方案都与Z结尾的DateTime。
@NotNull
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd'T'HH:mm:ss.SSS aZ")
private LocalDateTime time;
Run Code Online (Sandbox Code Playgroud)
有什么解决办法吗?
我正在尝试从定义为使用RFC1123兼容日期时间规范的数据源解析时间戳.我的代码是:
value = Instant.from (DateTimeFormatter.RFC_1123_DATE_TIME.parse (textValue));
Run Code Online (Sandbox Code Playgroud)
这适用于某些数据,但我得到包含区域名称的字符串的例外,甚至是RFC2822中定义的字符串(由于它废弃RFC822而间接引用RFC1123).例子:
java.time.format.DateTimeParseException: Text 'Sun, 20 Aug 2017 00:30:00 UT' could not be parsed at index 26
java.time.format.DateTimeParseException: Text 'Mon, 21 Aug 2017 15:00:00 EST' could not be parsed at index 26
Run Code Online (Sandbox Code Playgroud)
我如何说服DateTimeFormatter接受这种类型的约会?
我正在尝试使用此代码来解析带有时区的日期字符串进行测试:
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mmZZZZZ", Locale.US);
Calendar calendar = Calendar.getInstance();
calendar.setTime(sdf.parse("2017-07-26T06:00-06:00"));
int offset = calendar.getTimeZone().getRawOffset();
Run Code Online (Sandbox Code Playgroud)
我正在尝试将时区从 更改-06为+09,但offset始终包含10800000.
如何正确解析带有时区的日期(我需要时间和时区)?
作为输入,我有一个字符串,它是 ISO 8601 中的字符串,用于表示日期。例如:
“2017-04-04T09:00:00-08:00”
String的最后一部分“-08:00”表示时区偏移。我将此字符串转换为Calendar实例,如下所示:
Calendar calendar = GregorianCalendar.getInstance();
Date date = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'", Locale.US).parse(iso8601Date);
calendar.setTime(date);
Run Code Online (Sandbox Code Playgroud)
iso8601日期为“2017-04-04T09:00:00-08:00”
但这不会选择时区,如果我从Calendar实例获取时区,它会给出笔记本电脑当前设置的实例,并且不会从 ISO 8601 字符串中获取时间戳。我通过日历实例检查时区:
calendar.getTimeZone().getDisplayName()
Run Code Online (Sandbox Code Playgroud)
有人可以展示如何在Calendar实例中选择时区吗?
我想exp从 JSON 网络令牌 (JWT)解析到期日期 ( ),而无需对其进行验证。我尝试了以下脚本(试图遵循How to parse unix timestamp to time.Time):
package main
import (
"fmt"
"log"
"strconv"
"time"
jwt "github.com/dgrijalva/jwt-go"
)
func main() {
tokenString := "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c"
token, _, err := new(jwt.Parser).ParseUnverified(tokenString, jwt.MapClaims{})
if err != nil {
log.Fatal(err)
}
if claims, ok := token.Claims.(jwt.MapClaims); ok {
fmt.Println(claims["exp"])
i, err := strconv.ParseInt(claims["exp"].(string), 10, 64)
if err != nil {
log.Fatal(err)
}
tm := time.Unix(i, 0)
fmt.Println(tm)
}
}
Run Code Online (Sandbox Code Playgroud)
但是,我收到此错误:
> go run main.go
<nil> …Run Code Online (Sandbox Code Playgroud) LocalTime我在使用 java解析包含小时、分钟和秒的字符串时遇到问题。
LocalTime t = LocalTime.parse("8:30:17"); // Simplification
Run Code Online (Sandbox Code Playgroud)
这会引发以下异常:
线程“main”中的异常 java.time.format.DateTimeParseException:无法在索引 0 处解析文本“8:30:17”
我使用此代码收到此错误:
SimpleDateFormat sdf = new SimpleDateFormat("EEEE dd MMMM HH:mm yyyy",myDateFormatSymbols);
sdf.parse("????????? 12 ??????? 07:00 2021");
Run Code Online (Sandbox Code Playgroud)
是
"Monday 12 April 07:00 2021"。问题是,每当我将日期从星期一更改为星期二 ( "????????") 时,我都不会收到此错误,并且代码有效。这是代码myDateFormatSymbols:
private final static DateFormatSymbols myDateFormatSymbols = new DateFormatSymbols(){
@Override
public String[] getWeekdays(){
return new String[]{"?????????","????????", "??????", "??????", "???????", "??????", "??????"};
}
@Override
public String[] getMonths() {
return new String[]{...};
}
}
Run Code Online (Sandbox Code Playgroud)
所有月份和工作日都正常工作,似乎这个错误只发生在星期一。