rails提供了很友好的管理时间的API,其中包括 创建,计算,格式化。
其中,对时间格式化支持的主要代码下面这个文件中
active_support/core_ext/time/conversions.rb
def self.included(klass) #:nodoc:
klass.send(:alias_method, :to_default_s, :to_s)
klass.send(:alias_method, :to_s, :to_formatted_s)
end
def to_formatted_s(format = :default)
DATE_FORMATS[format] ? strftime(DATE_FORMATS[format]).strip : to_default_s
end
用included对被加载代码,进行hack,在rails中到处都是,最经典的是rails acts_as模块,
这个会在以后的blog中重点讲到。
在这里,conversions.rb将to_s的调用转移到方法to_formatted_s。
下面就很清楚了,直接从常量DATE_FORMATS中拿出format,然后交给strftime。
看看,短短两行代码,就可以将时间格式化的api转换成:
Time.now.to_s(:db) #"2007-11-19 12:10:14"
rails内置了4个
DATE_FORMATS = {
:db => "%Y-%m-%d %H:%M:%S",
:short => "%d %b %H:%M",
:long => "%B %d, %Y %H:%M",
:rfc822 => "%a, %d %b %Y %H:%M:%S %z"
}
当然,如果你要扩展,也很容易
Time::DATE_FORMATS[:stamp] = '%Y%m%d%M%S'
这个代码在rails加载完毕后加入,或者直接放到lib中的某个文件中。
使用的时候
>> Time.now.to_s(:stamp)
=> "200711191316"
>>
分享到:
- 2007-11-19 12:14
- 浏览 1547
- 评论(3)
- 论坛回复 / 浏览 (3 / 2973)
- 查看更多
相关推荐
记录如何初始化表格 const db = require ( 'mock.db' ) , table = new db . table ( 'test_table' ) ; 如何将数据设置为条目 const db = require ( 'mock.db' ) , table = new db . table ( 'test_table' ) ;table ....
ro角色用于部署警告网络和数据库服务器的人偶角色定义参数init.pp中Naturalis的明智默认值班级role_waarneming :: common role_waarneming :: conf role_waarneming :: db role_waarneming :: db_slave role_...
Docker映像具有:当前组件版本: PostgreSQL: 12.5 () PostGIS: 3.1.1 () TimescaleDB: 2.0.1 () 如何建造: $ docker build -t binakot/postgresql-postgis-timescaledb . 如何运行: $ docker run -d --...
dbserver 数据库服务器 负责数据库存贮
- gc_files_to_locks:指定需要锁定的回滚段文件数量。 - gc_rollback_locks:指定回滚段的锁定锁的数量。 - fast_start_io_target:定义快速启动I/O目标的数量。 - fast_start_parallel_rollback:定义并行回滚进程...
安装 $ git pull https://github.com/gacha/hamster_time.git$ cd hamster_time$ bundle使用配置添加文件.env HAMSTER_DB_PATH: ~/.local/share/hamster-applet/hamster.dbPIVOTAL_USERNAME: <your>PIVOTAL_PASSWORD...
SoundPicker服务器 :headphone: 声音,拾音器服务器存储带来的所有乐趣 :headphone: :musical_note: :musical_notes: :world_map: 看法 :bookmark_tabs: API规范 :check_mark: 模型/ index.js db . Category = ...
使用alainvanhoof / alpine_postgresql例如在Alpine上的postgresql角色变量pg_db_name:pdns pg_db_user:pdnsuser pg_db_pass:pdnspass pg_listen_addr:“'127.0.0.1'” pdns_auth_listen_addr:127.0.0.1 pdns_...
go_ibm_db GoLang到DB2(用于z / OS),DB2(用于LUW),DB2(用于i)的接口。API文档有关go_ibm_db API和示例的完整列表,请检查先决条件应该安装Golang(Golang版本应该> = 1.12.x和<= 1.16.X) Git应该安装在...
用于智能手机的 Wordbook 应用...db_database:此应用程序使用的数据库(空) $ my_db:数据库设置(基本不需要改动) $ app_config:应用设置(基本不用改) $db_table_name:要创建的表名(基本不用改) $ db_user_li
热点数据库 警告:API尚未完成,可能会更改。 1.0稳定版本之前将添加新功能和文档 这 :hot_pepper: :hot_pepper: :hot_pepper: 最热门的数据存储方式 hotpot-db是一个辛辣,易于使用...(), hotpot_db::Error> { // m
Oracle Database 19c 是最新的长期版本,支持期限最长...LINUX.X64_193000_db_home文件分割成 三个 压缩包,必须集齐 三个 文件后才能一起解压一起使用: Oracle Database 19c (LINUX.X64_193000_db_home.part3.rar) ...
Oracle Database 21c 是最新的版本;...WINDOWS.X64_213000_db_home文件分割成 三个 压缩包,必须集齐 三个 文件后才能一起解压一起使用: Oracle Database 21c (WINDOWS.X64_213000_db_home.part3.rar) ...
db: image: mysql:latest container_name: db environment: MYSQL_ROOT_PASSWORD: password MYSQL_DATABASE: ChatGPTScan volumes: - ./init.sql:/docker-entrypoint-initdb.d/init.sql ports: - "3306:...
Oracle Database 19c 是最新的长期版本,支持期限最长...LINUX.X64_193000_db_home文件分割成 三个 压缩包,必须集齐 三个 文件后才能一起解压一起使用: Oracle Database 19c (LINUX.X64_193000_db_home.part3.rar) ...
赠送jar包:flink-statebackend-rocksdb_2.11-1.13.2.jar; 赠送原API文档:flink-statebackend-rocksdb_2.11-1.13.2-javadoc.jar; 赠送源代码:flink-statebackend-rocksdb_2.11-1.13.2-sources.jar; 赠送Maven...
Oracle Database 21c 是最新的版本;...WINDOWS.X64_213000_db_home文件分割成 三个 压缩包,必须集齐 三个 文件后才能一起解压一起使用: Oracle Database 21c (WINDOWS.X64_213000_db_home.part3.rar) ...
Oracle Database 21c 是最新的版本;...LINUX.X64_213000_db_home文件分割成 四个 压缩包,必须集齐 四个 文件后才能一起解压一起使用: Oracle Database 21c (LINUX.X64_213000_db_home.part4.rar) ...
【Excel_To_DB】是一款基于Java开发的小型工具,主要用于将Excel表格中的数据高效地导入到数据库中。这个项目采用SpringBoot框架,结合了EasyPoi库处理Excel数据,以及Redis消息队列来实现数据的异步批量导入。下面...
babylon_gpte_reporting... 该gpte_db词典可以作为无政府状态中的秘密传递,并且必须包含以下变量: gpte-db秘密 mysql_user : ... mysql_password : ... mysql_host : ... mysql_port : ... mysql_db : ... 然后,您