- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
这是我正在尝试做的:
public ZonedDateTime getZdt(String myDate, String format) {
return ZonedDateTime.parse(
myDate,
DateTimeFormatter.ofPattern(format)
.withZone(ZoneId.systemDefault())
);
}
getZdt("17-05-2017 00:10:59", "dd-MM-yyyy HH:mm:ss") //works fine
getZdt("17-05-2017", "dd-MM-yyyy") //DateTimeParseException (...Unable to obtain LocalTime from TemporalAccessor:)
我想做的很简单。我如何让它工作?
最佳答案
我有三个建议给你。
首先,这是否必须是相同的方法?你能有两个吗?我假设您只有两种可能的格式;如果你有十个,我认为这是一个不同的故事。
/** gets a ZonedDateTime from a date string with no time information */
public ZonedDateTime getZdtFromDateString(String myDate, String format) {
return LocalDate.parse(myDate, DateTimeFormatter.ofPattern(format))
.atStartOfDay(ZoneId.systemDefault());
}
您当然可以省略 format
参数并让格式保持不变。
当然你可以通过一个方法得到你想要的。我建议您的方法自己检测格式,而不是将格式传递给方法。
一个选项是处理两种格式的自定义 DateTimeFormatter
:
private static final DateTimeFormatter format = new DateTimeFormatterBuilder().appendPattern("dd-MM-uuuu")
.optionalStart()
.appendPattern(" HH:mm:ss")
.optionalEnd()
.parseDefaulting(ChronoField.HOUR_OF_DAY, 0)
.toFormatter();
public ZonedDateTime getZdt(String myDate) {
return LocalDateTime.parse(myDate, format).atZone(ZoneId.systemDefault());
}
最后,Jacob G.’s idea of trying both还不错。这是我的版本:
public ZonedDateTime getZdt(String myDate, String format) {
try {
return LocalDateTime.parse(myDate, DateTimeFormatter.ofPattern(format))
.atZone(ZoneId.systemDefault());
} catch (DateTimeParseException dtpe) {
return LocalDate.parse(myDate, DateTimeFormatter.ofPattern(format))
.atStartOfDay(ZoneId.systemDefault());
}
}
同样,人们可能更愿意省略 format
参数并使用两种常量格式。
关于java - 如果 HH :mm:ss is not defined?,我如何创建默认的 ZonedDateTime 到午夜,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44037216/
我发现了类似的问题here ,但这与我想做的事情无关。我在互联网上做了很多研究,我确定 Delphi 正在按设计或预期工作,如果时间为零,它会忽略时间。我有一个在 ListView 中显示日期和时间的
这个问题在这里已经有了答案: 关闭 11 年前。 Possible Duplicate: Background Worker Check For When It's Midnight? 是否有我可以
尝试创建新日期并将其设置为 UTC ISO 午夜并获得如下“2017-07-12T00:00:00”的输出,但到目前为止没有成功。 var dateNow = new Date(); var date
我如何计算今天的 NSTimeInterval 时分秒为零? 我知道今天的NSTimeInterval是这样的: NSTimeInterval today = [[NSDate date] time
我正在尝试创建一个created_at查询范围,它将捕获从UTC午夜(数据库默认值)到现在创建的所有记录。过去我可以使用以下方式查询时间范围: created_at => (24.hours.ago.
我试图将日期传递给 hubspot。但它显示以下错误消息[消息] => 1462127400 是 22:8:47.400 UTC,不是午夜! 如何使用 PHP 将日期转换为 UTC 午夜格式 最佳答案
我试图将日期传递给 hubspot。但它显示以下错误消息[消息] => 1462127400 是 22:8:47.400 UTC,不是午夜! 如何使用 PHP 将日期转换为 UTC 午夜格式 最佳答案
我想使用 Quartz 的 CronTrigger 每 24 小时安排一个组件例如-午夜。 以下表达式每 5 秒运行一次 CronScheduleBuilder.cronSchedule("0/5 *
我有一列包含一系列时间戳的列。最初我认为它们在 Unix 时间戳系统中,所以我使用以下代码将它们转换为日期时间。 big_frame['date'] = pd.to_datetime(big_fram
我是一名优秀的程序员,十分优秀!