您好,我无法理解我们需要使用哪种时间格式来解析此日期2020-02-11T17:26:31-05:00
,我尝试使用日期格式器和简单日期格式,但无法使用
日期采用这种格式-> 2020-02-11T17:26:31-05:00 我无法确定此日期的类型
以下是我尝试过的代码段,但其抛出异常
DateTimeFormatter responseFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss-SSSXXX'Z'",
Locale.ENGLISH);
responseDateTime = LocalDateTime.parse(otmmResponseDate, responseFormatter);
答案 0 :(得分:4)
请注意,您的日期字符串中有一个偏移量-05:00
。因此,您的字符串不代表LocalDateTime
,而是OffsetDateTime
,应由OffsetDateTime.parse
解析(并非所有内容都是LocalDateTime
!):
// the format is ISO 8601, so it can be parsed directly without a DateTimeFormatter
OffsetDateTime odt = OffsetDateTime.parse("2020-02-11T17:26:31-05:00");
如果只需要本地日期时间 part ,则可以在之后致电toLocalDateTime
:
LocalDateTime ldt = odt.toLocalDateTime();
答案 1 :(得分:1)
这是日期时间static void deleter_a(A* a) { delete a; }
,其中包含负五小时的偏移量。您甚至不必直接使用A
,因为将其解析为B
即可:
class B {
public:
B() {}; // or = default
~B() {}; // or = default
void addA(const std::string name, const float num);
private:
static void deleter_a(A* a) { delete a; }
using deleter_a_t = void(A*);
std::vector<std::unique_ptr<A, std::function<deleter_a_t>>> vecA;
};
void B::addA(const std::string name, const float num) {
vecA.push_back(std::unique_ptr<A, std::function<deleter_a_t>>{
new A(name, num), std::function<deleter_a_t>{deleter_a}
});
}
输出:
String
这并不是说它使用DateTimeFormatter
且输出没有偏移。