Java 日期到时间戳
我正在尝试将此日期字符串2014-07-17T22:41:17+0000转换为timestmap,类似于:1405645259000 我试过类似的方法: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转换为日
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();