我拥有的字符串是
Mon Mar 04 12:19:50 GMT+05:30 2019
我希望它转换为
2019-03-04T12:19:50
我试着做:
SimpleDateFormat sdf3 = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy", Locale.ENGLISH);
Date d1 = null;
try{
d1 = sdf3.parse(String.valueOf(currentTime));
}catch (Exception e){ e.printStackTrace(); }
System.out.println("check..." + d1);
但这不起作用
我怎样才能做到这一点?请帮我弄清楚逻辑。
正如@Jon Skeet 提到的,使用java.time
是个好主意。在您的偏移量处使用Date.toInstant
, 并转换为 a LocalDateTime
:
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.LocalDateTime;
import java.time.ZoneOffset;
import java.util.Date;
import java.util.Locale;
public class SO201904030814 {
public SO201904030814() {
}
public static void main(String[] args) throws ParseException {
SimpleDateFormat sdf3 = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy", Locale.ENGLISH);
Date d1 = sdf3.parse(String.valueOf("Mon Mar 04 12:19:50 GMT+05:30 2019"));
LocalDateTime dateTime = LocalDateTime.ofInstant(d1.toInstant(), ZoneOffset.of("+05:30"));
System.out.println("check..." + d1 + " vs " + dateTime);
}
}
哼!
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句