我使用PSPad作为文本编辑器,它允许您按Alt+ D插入时间戳,例如:
2010-07-17 23:45:44
有没有办法在Google Spreadsheet中执行此操作?
我使用PSPad作为文本编辑器,它允许您按Alt+ D插入时间戳,例如:
2010-07-17 23:45:44
有没有办法在Google Spreadsheet中执行此操作?
Answers:
我使用AutoHotKey来执行此功能。
AutoHotKey是Windows脚本应用程序和语言。
我在下面使用的代码很容易修改,以插入时间并将斜杠更改为连字符(如果您愿意)。
+!d:: ;Shift-Alt-D: Insert current date
SendInput %A_DD%/%A_MM%/%A_YYYY%
return
Google表格支持以下键盘快捷键:
Ctrl+ Shift+ :是插入时间的按键。
Ctrl+ ;是插入日期的按键。
Ctrl+ Alt+ Shift+ :是插入日期和时间的按键。
有关更多详细信息,请参见键盘加速器,助记符和快捷方式。
我创建了一个小脚本,将字符串文字“ _now”转换为当前日期时间-
function onEdit(e) {
if (e.range.getValue() == "_now") {
e.range.setValue(new Date());
}
}
我觉得很方便键入_now
并将其转换为当前日期时间值。
请参阅https://developers.google.com/apps-script/quickstart/macros和https://developers.google.com/apps-script/understanding_events,以获取有关如何将其添加到Google Spreadsheet的更多信息。
您可以在以下位置放入一个书签:
javascript:var thetime=new Date();var txtNode=document.createTextNode((thetime.getMonth()+1)+'/'+thetime.getDate()+'/'+thetime.getFullYear()+' '+thetime.getHours()+':'+thetime.getMinutes()+':'+thetime.getSeconds()); var myInputNode=document.getElementsByClassName('cell-input')[1]; if (myInputNode.hasChildNodes()) { myInputNode.replaceChild(txtNode, myInputNode.childNodes[0]); } else { myInputNode.appendChild(txtNode); }; void(0);
然后编辑单元格,然后单击小书签。
我还为此创建了一个脚本,并且我想要一种默认时间戳(如in =TODAY()
或=NOW()
)中不可用的格式。
它还根据当前会话(在工作表的首选项中设置)获取时区。
function _NOW(input)
{
// for formatting, see:
// https://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html
var timestamp_format = "yyyy-MM-dd hh:MM a"; // Timestamp Format eg: 2019-04-11 12:04 PM
var timezone = Session.getScriptTimeZone();
var date = Utilities.formatDate(new Date(), timezone, timestamp_format);
return date;
}
使用起来很简单:
=_NOW()
需要说明的是:我手动进行了日期格式化,因为Google表格中的自定义日期格式是一大堆垃圾(无法将自定义格式设置为默认格式,无法在不删除所有内容的情况下更改日期/时间元素的顺序首先并一次添加每个部分)。
=if(len(A2)>0;if(B2<>"";B2;now());"")
在“设置”中,将电路解决方案更改为1,它将在没有JavaScript的情况下运行