Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/314.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/196.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 日期到时间戳_Java_Android - Fatal编程技术网

Java 日期到时间戳

Java 日期到时间戳,java,android,Java,Android,我正在尝试将此日期字符串2014-07-17T22:41:17+0000转换为timestmap,类似于:1405645259000 我试过类似的方法: String string = "January 2, 2010"; Date date = new SimpleDateFormat("MMMM d, yyyy", Locale.ENGLISH).parse(string); System.out.println(date); 如何将此2014-07-17T22:41:17+000转换为日

我正在尝试将此日期字符串2014-07-17T22:41:17+0000转换为timestmap,类似于:1405645259000

我试过类似的方法:

String string = "January 2, 2010";
Date date = new SimpleDateFormat("MMMM d, yyyy", Locale.ENGLISH).parse(string);
System.out.println(date);
如何将此2014-07-17T22:41:17+000转换为日期?正确的格式是什么?我不知所措

看一看

日期字符串的格式与

yyyy-MM-dd'T'HH:mm:ssZ  //Eg: 2001-07-04T12:08:56-0700
因此,您的代码应该是:

String string = "2014-07-17T22:41:17+0000";
Date date = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZ", Locale.ENGLISH).parse(string);
System.out.println(date);
使用此模式:

Date date = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZ", Locale.ENGLISH).parse(string);
tl;博士 避免java.util.Date 您的问题在Joda Time或java 8中的新java.Time包中很简单。避免使用java.util.Date和.Calendar,因为它们非常麻烦

ISO 8601 您的字符串采用标准格式,符合ISO 8601。上面提到的两个库都使用ISO8601作为解析和生成字符串的默认值

java.time OffsetDateTime类表示时间线上的某个时刻,该时刻与UTC之间存在偏移,分辨率以纳秒为单位

OffsetDateTime odt = OffsetDateTime.parse( "2014-07-17T22:41:17+0000" );
从那里,您可以通过Instant类请求从epoch开始的毫秒计数。该类表示时间线上的某个时刻,分辨率高达9位小数

long millisecondsSinceEpoch = odt.toInstant().toEpochMilli();
关于java.time 该框架内置于Java8及更高版本中。这些类取代了麻烦的旧日期时间类,例如,&

该项目现已启动,建议迁移到java.time

要了解更多信息,请参阅。并搜索堆栈溢出以获得许多示例和解释。规格是

从哪里获得java.time类

后来 内置的。 标准JavaAPI的一部分,带有捆绑实现。 Java9添加了一些次要功能和修复。 和 大部分java.time功能都在中向后移植到Java6和Java7。 该项目特别针对Android采用了上述Three-Ten Backport。 看见 该项目使用其他类扩展了java.time。这个项目是java.time将来可能添加的一个试验场。您可以在这里找到一些有用的类,例如、、和

乔达时间 Joda Time 2.3上的示例代码

long millisSinceEpoch = new DateTime( "2014-07-17T22:41:17+0000" ).getMillis();

请阅读这篇文章。希望这有帮助。
long millisSinceEpoch = new DateTime( "2014-07-17T22:41:17+0000" ).getMillis();