要将MySQL数据库中的数据,由日本服务器转移到美国服务器。日本服务器的时区是JST,美国服务器的时区是PDT。使用了MySQL的Dump/Restore,完成导入后发现,数据库中的timestamps字段没有被正确的转换,比如原来是日本时间的 2010/7/1 20:14:11 变成了美国太平洋夏令时的 2010/7/1 20:14:11,需要做时间的转换。(试过MySQLDump中的时区转换选项,可能是我设置的问题,没有成功)
使用Ruby做了是脚本,在美国服务器上,将时间修全部进行了转换。下边的代码省略了读取数据库的部分。
class Time
def convert_zone(from_zone, to_zone)
original_zone = ENV["TZ"]
ENV["TZ"] = from_zon
from_zone_time = Time.local(year, month, day, hour, min, sec)
utc_time = from_zone_time.gmtime
ENV["TZ"] = to_zone
to_zone_time = utc_time.localtime
ENV["TZ"] = original_zone
return to_zone_time
end
end
t = Time.now
puts t
puts t.convert_zone("Asia/Tokyo", "US/Pacific")
参考
http://book.csdn.net/bookfiles/375/10037514138.shtml
分享到:
相关推荐
这个库的核心功能在于帮助开发者在处理日期和时间时准确地进行时区转换,确保数据的正确性和一致性。 TZInfo库是基于TZ数据库,这是一个广泛使用的包含全球各地时区信息的数据源。它包含了各国和地区的历史和未来的...
TZInfo-Ruby时区库 是一个Ruby库,它提供对时区数据的访问,并允许使用时区规则转换时间。数据源TZInfo需要时区数据源。 有两种选择: 包含时区定义文件的zoneinfo目录。 这些文件是使用zic实用程序从生成的。 ...
Ruby 中处理时间和日期 Ruby 中处理时间和日期可以使用 Time 类来生成当前时间的对象。Time 类有类方法 mktime(同义方法是 local 方法)来根据传入的参数生成时间对象,并且它使用的是当前的时区。例如: t = ...
TZ::格式化程序 用于时区格式转换的 Ruby gem。 这个 gem 提供了四个用于将时区格式相互转换的类。 PosixTZ 奥尔森WinTZ WinRegTZ 注意:这个 gem 不会修改基本的 ruby 类时区示例以阿拉斯加时区为例: 奥尔森 -...
它可以将解析的结果转换为指定时区的时间。 4. **部分时间解析**:Chronic可以解析不完整的时间信息,如只提供小时但没有分钟,或者只提供日期没有时间。 5. **多语言支持**:虽然名字是“Chronic”,但它并不仅...
16. **tzinfo (0.3.33)**:提供了时区数据和计算时区偏移的方法。 17. **activerecord (3.2.3)**:提供了一种简单的数据库访问方式,即ORM(对象关系映射)。 18. **activeresource (3.2.3)**:提供了一个用于...
- **时间戳自动转换**:当用户提交表单时,Rails会自动将用户输入的时间戳转换为其所在时区的时间,从而避免了时区转换错误。 ##### 修改追踪(Dirty Tracking) 在Rails 2.1中,模型类现在内置了修改追踪功能。这...
- `zone`: 返回时区名称。 4. **数组处理方法**: - `assoc`: 查找包含指定键的元素。 - `at`: 获取指定索引处的元素。 - `clear`: 清空数组。 - `collect!`: 改变数组元素。 - `compact!`: 移除数组中的`nil`...
接下来是`Time`类中的`localtime`方法,它将UTC(协调世界时)转换为本地时间,以适应不同的时区。 除了`Time`类,Ruby还提供了`Date`类来处理日期,不包含具体时间信息。要使用`Date`类,需要先引入`require "date...
时区提供了不同时区之间的夏令时感知转换。 这也是Ruby宝石的端口。安装将此添加到应用程序的shard.yml : dependencies : time_zone : github : imdrasil/time_zone用法以下代码将获取America / New_York时区...
I18nTimezones I18n时区-此gem的目的是简单地提供时区转换。 该gem易于与需要i18n时区转换的其他gem结合使用,因此我们可以使用通用的i18n时区转换gem。 如果您要对时区和翻译做任何事情,则无需重新发明轮子并...
本教程将详细介绍在Ruby中如何处理日期和时间,包括创建日期时间对象、获取日期时间的各个组成部分、使用不同的时间函数、处理时区和夏令时以及日期时间的格式化方法。 首先,要创建当前的日期和时间对象,可以使用...
除了基本的翻译功能,R18n还提供了诸如时区转换、日期和时间格式化、货币格式化等特性,这些都是在处理跨文化应用时非常重要的。例如,日期在不同国家的格式可能不同,R18n可以根据用户的地区自动调整显示格式。 ...
`local_time`引擎的核心功能在于将服务器上的UTC时间或特定时区时间转换为用户浏览器所在地的本地时间。这样,无论用户身在何处,都能看到与自己所在时区相符的时间显示,避免了因时区差异带来的理解困扰。 使用`...
它将所有SQL Server数据类型转换为本机Ruby原语,同时为类似时间的类型支持:utc或:local时区。 迄今为止,它是唯一一个在连接到SQL Server时允许客户端编码选项(默认为UTF-8)的Ruby客户端库。 它还可以正确编码...
在实际应用中,还应考虑时区转换、异常处理以及不同的日期和时间格式。例如,ISO 8601标准格式("yyyy-MM-dd'T'HH:mm:ss")在国际交流中广泛使用,而其他格式如美国格式("MM/dd/yyyy HH:mm:ss")则在特定地区常见。...
此外,你可以通过`Time#to_a`方法将`Time`对象转换为一个数组,包含所有时间组件,然后传递给`Time.utc`或`Time.local`来创建不同格式的日期: ```ruby time = Time.new values = time.to_a puts Time.utc(*values)...
6. **扩展性**:由于iCalendar格式支持多种复杂日历功能,如多日事件、时区转换等,ri_cal库也提供了相应支持。 **应用场景** - **日历应用**:开发者可以使用ri_cal来构建自己的日历应用,实现事件添加、删除、...
日期时区 DateTimezone是一个ActiveRecord关注点,它使date类型的属性考虑到应用程序的时区,将String输入转换为Date 。动机在 JavaScript 中,有时我们希望将日期处理为Date并将其直接发送到 Rails 应用程序。 ...
- 将时间转换为 `asctime` 形式的字符串,但不包含结尾的换行符。 **示例**: ```ruby t = Time.now puts t.asctime ``` #### 9. `gmt?` 和 `utc?` - **描述**: - 如果 `self` 的时区是 `UTC`,则返回 `true`。 ...