Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将字符串转换为Joda DateTime对象时出现问题_Java_Date_File Io_Jodatime - Fatal编程技术网

Java 将字符串转换为Joda DateTime对象时出现问题

Java 将字符串转换为Joda DateTime对象时出现问题,java,date,file-io,jodatime,Java,Date,File Io,Jodatime,将字符串转换为Joda DateTime对象时出现问题。我不知道我做错了什么。我在StackOverflow上遵循其他线程的说明,但是下面的代码不起作用。它抛出以下异常: Exception in thread "main" java.lang.NullPointerException at org.joda.time.format.DateTimeFormatterBuilder$NumberFormatter.parseInto(DateTimeFormatterBuilder.ja

将字符串转换为Joda DateTime对象时出现问题。我不知道我做错了什么。我在StackOverflow上遵循其他线程的说明,但是下面的代码不起作用。它抛出以下异常:

Exception in thread "main" java.lang.NullPointerException
    at org.joda.time.format.DateTimeFormatterBuilder$NumberFormatter.parseInto(DateTimeFormatterBuilder.java:1330)
    at org.joda.time.format.DateTimeFormatterBuilder$Composite.parseInto(DateTimeFormatterBuilder.java:2741)
    at org.joda.time.format.DateTimeFormatter.parseDateTime(DateTimeFormatter.java:853)
    at co.restclient.ExpiringCookie.<init>(ExpiringCookie.java:41)
    at co.restclient.ExpiringCookie.main(ExpiringCookie.java:29)
cookie.xml文件内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
<properties>
<comment>Stores cookie for API requests</comment>
<entry key="cookie">xxxxxxx</entry>
<entry key="startTime">03/01/2014 10:00:08</entry>
</properties>

存储API请求的cookie
xxxxxxx
03/01/2014 10:00:08
表达式

DateTimeFormatter fmt = DateTimeFormat.forPattern("dd/MM/YYYY HH:mm:ss");
fmt.parseDateTime(null);
生成NPE,请参见以下类似的堆栈跟踪:

Exception in thread "main" java.lang.NullPointerException
    at org.joda.time.format.DateTimeFormatterBuilder$NumberFormatter.parseIntoDateTimeFormatterBuilder.java:1292)
    at org.joda.time.format.DateTimeFormatterBuilder$Composite.parseInto(DateTimeFormatterBuilder.java:2695)
    at org.joda.time.format.DateTimeFormatter.parseDateTime(DateTimeFormatter.java:846)
    at time.JodaTest8.main(JodaTest8.java:80)
并且该参数表示该参数不能为空

一般说明:使用后,只创建文件流而不关闭文件流是非常糟糕的。也许这就是你问题的原因。该文件可能已在以前的运行中创建,但尚未完成/刷新/关闭。然后你要求这个文件中的属性值,NPE就很容易实现了!因此,请修复您的流问题。

表达式

DateTimeFormatter fmt = DateTimeFormat.forPattern("dd/MM/YYYY HH:mm:ss");
fmt.parseDateTime(null);
生成NPE,请参见以下类似的堆栈跟踪:

Exception in thread "main" java.lang.NullPointerException
    at org.joda.time.format.DateTimeFormatterBuilder$NumberFormatter.parseIntoDateTimeFormatterBuilder.java:1292)
    at org.joda.time.format.DateTimeFormatterBuilder$Composite.parseInto(DateTimeFormatterBuilder.java:2695)
    at org.joda.time.format.DateTimeFormatter.parseDateTime(DateTimeFormatter.java:846)
    at time.JodaTest8.main(JodaTest8.java:80)
并且该参数表示该参数不能为空


一般说明:使用后,只创建文件流而不关闭文件流是非常糟糕的。也许这就是你问题的原因。该文件可能已在以前的运行中创建,但尚未完成/刷新/关闭。然后你要求这个文件中的属性值,NPE就很容易实现了!因此,请解决您的流问题。

第41行中的表达式
properties.getProperty(“startTime”)
似乎返回
null

检查JavaDoc中的

上面说

在此属性列表中搜索具有指定键的属性。如果在此属性列表中找不到该键,则会递归地检查默认属性列表及其默认值。如果未找到属性,则该方法返回null

因此,文件
data/cookie.xml

我假设您使用的是最新的joda time版本2.3<调用code>text.length()。如我上面所假设的那样,如果
properties.getProperty(“startTime”)
返回null,那么您将得到NPE


解决方案:确保文件
data/cookie.xml

中的键
startTime
有一个值,第41行的表达式
properties.getProperty(“startTime”)
似乎返回
null

检查JavaDoc中的

上面说

在此属性列表中搜索具有指定键的属性。如果在此属性列表中找不到该键,则会递归地检查默认属性列表及其默认值。如果未找到属性,则该方法返回null

因此,文件
data/cookie.xml

我假设您使用的是最新的joda time版本2.3<调用code>text.length()。如我上面所假设的那样,如果
properties.getProperty(“startTime”)
返回null,那么您将得到NPE


解决方案:确保文件
data/cookie.xml

中的键
startTime
有一个值,properties.getProperty(“startTime”)的结果是什么,您使用的joda时间是什么版本?仅供参考,项目现在开始,团队建议迁移到类。请参阅。properties.getProperty(“startTime”)的结果是什么?您使用的joda time版本是什么?仅供参考,该项目现在正在进行中,团队建议迁移到这些类。请参阅。我只是使用常规属性与xml方法进行通信。他们不应该是可靠的吗?如果您运行我上面提供的程序,我看不出哪里会犯这样的错误。data/cookie.xml文件中startTime的值是多少?你检查过了吗?尝试使用Properties#loadFromXML方法而不是Properties#load这有什么区别吗?谢谢@pogopaule。就这样!谢谢,谢谢。我只是使用常规属性与xml方法进行通信。他们不应该是可靠的吗?如果您运行我上面提供的程序,我看不出哪里会犯这样的错误。data/cookie.xml文件中startTime的值是多少?你检查过了吗?尝试使用Properties#loadFromXML方法而不是Properties#load这有什么区别吗?谢谢@pogopaule。就这样!谢谢,谢谢,你的权利。getProperty()正在从自己编写的属性文件中提取空值。我不明白这是怎么可能的。@djangofan我已经添加了一个可能的场景,说明为什么cookie测试中没有属性。请尽量保持一致,
storeToXML()
应该由
loadFromXML()
配对,而不是由
load()
配对。您的权利。getProperty()正在从自己编写的属性文件中提取空值。我不明白这是怎么可能的。@djangofan我已经添加了一个可能的场景,说明为什么cookie测试中没有属性。为了保持一致,
storeToXML()
应该由
loadFromXML()
配对,而不是由
load()
配对。