当前位置: 首页 > 知识库问答 >
问题:

我输入到Firestore数据库的所有日期都得到+1小时。(Google Firestore和datestamp问题)

季阳朔
2023-03-14

为什么Firebase在添加时间戳时要在值上添加一个小时?

我有一个python脚本,它将一些值放入Firestore数据库中的集合中。数据包括时间戳。(请参见此处的python代码:)

def insertIntoFirebase(yrRow):

    #myDate = dateutil.parser.parse(yrRow.fromDate) 
    myDate = datetime.strptime(yrRow.fromDate, '%Y-%m-%dT%H:%M:%S')
    print("Tiden " + str(myDate))
    doc_ref = db.collection('yrData').document(str(yrRow.index))
    doc_ref.set({'index':yrRow.index ,"timeText": yrRow.fromDate,'time': myDate, 
   'temperature':yrRow.temperature})

在这个方法中,我将一些值放入firestore集合YRData中。查看键值对time和timeText

编辑:更改了一些错误,并添加了关于时区的最后一段

共有1个答案

史景铄
2023-03-14

您的代码正在根据正在格式化日期的计算机上配置的时区(可能是UTC?)格式化timetext。Firestore控制台根据运行浏览器的机器的时区(UTC+1)格式化时间戳。这些显然是不同的时区,彼此相差1小时。这是一个常见的误解--它经常出现在堆栈溢出中。

请注意,Timestamp对象不包含任何时区信息。它只是unix时代的一个偏移。为了格式化一个人类可读的时间,需要假设一个时区,这是你在时间上遇到明显差异的地方。

 类似资料:
  • 问题内容: 我正在对jdbc操作使用Spring JDBC模板。由于我使用的是BeanPropertySqlParameterSource,因此将bean的START_TIME变量分配为java.sql.date类型。在Oracle数据库中,该列被称为“ DATE”类型(并且没有TIMESTAMP类型,即使数据库为10.2 ver) 现在当我设定 它以日期和时间戳记存储为00:00:00 请告诉我

  • 我需要将数据从Firebase实时数据库切换到Firestore DB。我该怎么做? 视频主要关注实时db,但我认为由于我没有激活实时db,它会转到Firestore。但我让它工作的唯一方法是启用实时db。所以我可以在Firebase中插入和读取数据,但我需要它在Firestore中。 任何帮助都是非常感激的。

  • 我正在为具有许多嵌套行的json数据库寻找将Firebase实时数据库数据迁移到云Firestore的最佳方法。示例: 我没有找到任何可以帮助我的东西。我需要迁移的是Cloud FireStore的新离线功能。我正在使用Ionic3(角度5)

  • 由于某些奇怪的原因,数据库没有得到更新,我可以得到正确的数据(我检查了它),但是当我单击submit时,数据库没有得到更新。你能帮我查一下有没有什么东西丢了吗?注意:“---”只是出于安全考虑! ?

  • 我已经在我的应用程序中添加了一个按钮。当我点击按钮时,当前时间保存到SP。但我想把这个保存到我的firebase数据库里。我怎么能这么做?

  • 我已经创建了一个数据库助手类,当我运行代码时,我不断收到以下错误消息:“android.database.sqlite.SQLiteException:table words_info没有名为back_word的列(代码1 sqlite_error[1]):,编译时:INSERT INTO words_info(front_word,back_word)值(?,)。”我试图更改数据库的版本,但也没