我已经用这段代码为Android应用程序挣扎了一段时间,我无法理解它.我已经阅读并尝试了我在stackoverflow和其他地方找到的每个解决方案,但仍然没有运气.

我想要做的是有一个函数将像“17.08.2012 05:35:19:7600000”这样的字符串转换为UTC日期和一个接受UTC日期并将其转换为类似字符串的函数.

String value = "17.08.2012 05:35:19:7600000";

DateFormat df = new SimpleDateFormat("dd.MM.yyyy HH:mm:ss:SSSSSSS");

try

{

Date today = df.parse(value);

System.out.println("Today = " + df.format(today) + " " + today.toGMTString());

}

catch (ParseException e)

{

e.printStackTrace();

}

结果如下:今天= 17.08.2012 07:41:59:0000000 2012年8月17日04:41:59 GMT这两个都是错的.

我尝试将SDF的时区设置为UTC,没有运气.

我注意到的另一件事:如果我做df.setLenient(false);

它给了我:java.text.ParseException:Unparseable date:“17.08.2012 05:35:19:7600000”.

如果有人能提供一些解释/示例代码,我将非常感激.提前致谢

解决方法:

你得到的结果是绝对正确的.

我们来分析一下:

17.08.2012 05:35:19:7600000

> 17:月份(17日)

> 08:一年中的月份(八月)

> 2012年:年(2012年)

> 05:一天中的小时(早上5点)

> 35:一小时(:35)

> 19:分秒(:19)

> 7600000:毫秒秒(7,600,000)

现在,VM看到这种情况的方式是你将时间宣布为5:35:19 am,然后再添加7,600,000毫秒. 7,600,000毫秒= 7,600秒= 2小时6分40秒.凌晨5:35:19 02:06:40 = 7:41:59(和0毫秒).这是你得到的结果. (您似乎没有正确设置时区,因此GMT字符串比您的结果落后3小时.)

如果你想保留:7600000,据我所知这是不可能的.由于这可以简化为几秒钟,因此VM会自动将其减少到其他时间增量.毫秒(SSSS)应该用于存储值<1000.

我建议你为你的输出创建一个新的SimpleDateFormat;但要记住,毫秒将被吸收到其他时间(因为它们都被存储为Date对象中的一个long).

标签:date-parsing,android,java,simpledateformat,datetime-format

来源: https://codeday.me/bug/20190923/1815608.html

java 日期 纳秒_java – 具有纳秒的字符串日期转换相关推荐

  1. java 和mysql 时间_java和mysql之间的时间日期类型传递

    mysql(版本:5.1.50)的时间日期类型如下: datetime 8bytes xxxx-xx-xx xx:xx:xx 1000-01-01 00:00:00到9999-12-31 23:59: ...

  2. java service层 事务_Java高并发秒时啊API之Service层1

    ---2-1 使用Spring托管Service依赖理论---------------------------- spring ioc优势(工厂模式): 1.对象创建统一托管 2.规范的生命周期管理 ...

  3. java延迟1秒_java 等待一秒方法

    t.sleep(1000); 这个实际是主线程调用t的方法,本来就不科学,(在a线程里调用了b的sleep方法,实际上还是a去睡觉) t = new Thread(this); 不清楚这个类是Thre ...

  4. java时间日期格式器_JAVA基础类库(二)-----日期、时间类和格式器

    Date类 public classDateTest{public static voidmain(String[] args){ Date d1= newDate();//获取当前时间之后100ms ...

  5. java 判断时间合法_java 中 Date 类型快判断日期是否合法.

    // 如果日期不合法,则抛异常 try { String date_str = "5555-22-33"; SimpleDateFormat format=new SimpleDa ...

  6. java 日期是否合法_java 中 Date 类型快判断日期是否合法.

    // 如果日期不合法,则抛异常try {String date_str = 5555-22-33;SimpleDateFormat format=new SimpleDateFormat(yyyy-M ...

  7. java 日期格式化 英文_Java中使用SimpleDateFormat输出英文日期(原创)

    Java中使用SimpleDateFormat输出英文日期(原创) 由萱萱 发表于2013-12-14 如果你想输出英文日期,形如: September 29, 2013 可以借助java.text. ...

  8. java时间解析错误_java.lang.IllegalArgumentException:解析错误-日期格式错误?

    我正在使用变量CURRENT_DATE将当前日期存储在SQLite数据库中.我发现使用的日期格式是yyyy-mm-dd.我想解析代码中的日期,但出现此错误: java.lang.IllegalArgu ...

  9. java 获取est时间_java – 在EST时区获取XMLGregorianCalendar日期

    我正在使用TimeZone.setDefault(TimeZone.getTimeZone("EST"));获得EST时区,它对我来说很好.但是有时候由于默认的JVM时区没有人在我 ...

最新文章

  1. 慎用Outline ,UGUI Outline实现原理分析
  2. PInvoke调用导致堆栈不对称
  3. Linux Mysql 1130错误解决
  4. OS / Linux / 系统阻塞在系统调用中时如果收到信号,系统如何处理?
  5. day 012 生成器 与 列表推导式
  6. Js 怎么遍历json对象所有key及根据动态key获取值(根据key值获取相应的value值)...
  7. 《智能家居产品 从设计到运营》——2.2 智能设备的触角:传感器
  8. 批量修改喜马拉雅下载节目的文件名
  9. 莫烦 pytorch
  10. 指纹识别算法MZFinger5.0
  11. Yii Zii组件 CGridView 使用详解
  12. 安卓海豚wii模拟器_dolphin模拟器安卓版
  13. RPA学习天地:艺赛旗RPA机器人的4种类型和区别介绍
  14. 【HTML5】HTML5
  15. 服务器遇到攻击了,有什么好的安全解决方案
  16. 函数,主函数,被调用函数,库函数。
  17. GPT-3让人怀疑人生!惊艳了世界!道翰天琼认知智能机器人api接口平台为您解密!
  18. 【汇总】行为识别、时序行为检测、弱监督行为检测、时空行为定位论文代码(持续更新!!!)
  19. 小熊电器失宠,小家电市场不背锅
  20. 【软考备战·希赛网每日一练】2023年4月13日

热门文章

  1. Mac OS X 通知中心彻底删除网站的通知
  2. 如何将 Django 服务器单独部署到 heroku 上
  3. 怎么样振作起来-How to Cheer Up
  4. 继续写usb gadget驱动(解决枚举失败问题)
  5. 【Little Demo】从简单的Tab标签到Tab图片切换
  6. 天耀18期 -08.面向对象-上转型【作业】
  7. 【图像增强】Learning Enriched Features for Real Image Restoration and Enhancement 阅读笔记
  8. 网线制作:网线和水晶头的接法
  9. Rust图片类型识别
  10. 虚拟机-安装与使用(详细教程)