【问题标题】:Fusion Table set format for DATETIMEDATETIME 的融合表集格式
【发布时间】:2012-08-02 04:56:38
【问题描述】:

我在我的 Android 应用程序中使用 google-api-services-fusiontables-v1-rev1-1.7.2-beta。 我正在使用插入原始 sql api service.query().sql("INSERT INTO " + tableId +" (DATE, HOUR, PULS,SYS, DIA) VALUES (long, long, int, int, int) 并且有一些问题。

  1. getDateTime() 是 long 类型,以毫秒为单位。然而,融合表中的数据一直显示 1969 年 12 月 31 日,时间一直是下午 6 点。这是一个已知问题吗?

  2. 有没有办法从我的应用程序中设置 DATETIME 的格式,我还没有看到 JSON 字段或 api 来设置格式...?

谢谢!

【问题讨论】:

  • 您好 Fusion Table 团队。有人可以帮忙解答问题吗?

标签: google-fusion-tables


【解决方案1】:

您能否说明您使用的是什么 getDateTime() 方法?您能否提供一个代码 sn-p 显示您如何调用 API,以及您在哪里看到 1969 年 12 月 31 日下午 6 点?

另外,目前您无法设置日期格式。随意star以下功能请求:http://code.google.com/p/fusion-tables/issues/detail?id=727&q=Type%3DFeature_Request%20format%20date&colspec=ID%20Type%20Status%20Summary%20Stars%20Component

【讨论】:

  • 我们使用 System.currentTimeMillis() (developer.android.com/reference/java/lang/System.html) 作为 getDateTime()。当我们在 FusionTable 上检查除数字以外的任何格式的日期时,我们得到的日期是错误的 1969 年 12 月 31 日下午 6 点。
  • 您能否包含一些代码来显示您如何插入日期以及如何获得错误的日期?
  • 这是我用于将 raw 插入表格的方法。 service.query().sql("INSERT INTO " + tableId + " (DATE, HOUR, WEIGHT) VALUES " + "(" + System.currentTimeMillis() + "," + System.currentTimeMillis() + "," + oAuth2.getWeight() + ")"); DATE 和 HOUR 列来自 DATETIME 类型。现在,当从我的 GDrive 在线访问表格并将列的格式更改为小时或日期格式(例如 2012 年 12 月 10 日)时,日期显示为 1969 年 12 月 31 日。
  • 您可以查看google.com/fusiontables/…,请求访问并查看原始4,以查看问题。
【解决方案2】:

1969 年 12 月 31 日下午 6 点是中部标准时间的 unix epoc。

Fusion Tables 无法将 System.currentTimeMillis() 返回的 UNIX 历元长值识别为日期。它将它们识别为数字。然而,Fusion 会自动识别一组文本格式。您可以在日期格式下的更改列对话框中使用浏览器界面查看支持的格式。例如,我使用格式“2008-12-25 10:30:45”。要将 Java 中的日期格式化为特定的文本格式,您可以使用 SimpleDateFormat。只需将日期的字符串版本插入 SQL。

无法从 API 设置列的格式选项,目前只能从 Google Drive 界面完成。

请记住,Fusion Tables 是实验性的,将来可能会停止使用。另请注意,您不要将 Fusion Tables 用于纯粹的非营利目的以外的任何用途,因为它实际上仅用于慈善和公共服务用例。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-03-18
    • 1970-01-01
    • 2011-07-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多