我有时间以毫秒为单位.1308700800000; 我需要把它转换成类似的东西 Jun 9'11 at 02:15 PM.
我试过用
SimpleDateFormat format = new SimpleDateFormat("MMM D'\''YY");
Run Code Online (Sandbox Code Playgroud)
但我得到一个例外:
Caused by: java.lang.IllegalArgumentException: Unterminated quote
Run Code Online (Sandbox Code Playgroud)
任何帮助将受到高度赞赏.
我正在构建一个Android应用程序,该应用程序使用户可以将事件插入到Google日历和外部日历(如Exchange帐户).
问题在于,如果用户想要在2038年之后添加事件,则会在过去创建事件(例如 - 2038年1月变为1901年12月,2038年7月4日变为1902年5月28日).我做了一些研究,发现问题是" 2038年问题 ".
2038年问题是计算和数据存储情况的问题,其中时间值存储或计算为带符号的32位整数,并且此数字被解释为1970年1月1日00:00:00 UTC以来的秒数这种实现无法在2038年1月19日03:14:07 UTC之后编码.
可以用Unix签名的32位整数时间格式表示的最新时间是2038年1月19日星期二03:14:07 UTC(1970年1月1日之后的2,147,483,647秒).超出该时间的时间将"环绕"并在内部存储为负数,这些系统将解释为1901年12月13日而不是2038年1月19日.这是由整数溢出引起的.
似乎我的Java代码工作正常,我得到的毫秒是好的,但是当我将值发送到Google API insert函数时 - 我认为它不知道如何处理它然后它在错误的日期插入事件( 1901年及以上).有办法处理吗?
这是我的代码:
private void InsertEvent(MyEvent myEvent) {
Uri EVENTS_URI = Uri.parse(getCalendarUriBase() + "events");
ContentValues eventValues = new ContentValues();
eventValues.put("eventTimezone", TimeZone.getDefault().getID());
eventValues.put("calendar_id", myEvent.calId);
eventValues.put("title",myEvent.title);
eventValues.put("allDay", 1);
long dateStart = myEvent.startDate.getTime(); // returns milliseconds - 2160248400000 for date 06/16/2038
eventValues.put("dtstart", dateStart );
long dateEnd = myEvent.endDate.getTime();
eventValues.put("dtend", dateEnd );
// At this point, in debug mode, I can see that the millisecond of …Run Code Online (Sandbox Code Playgroud) 我终于弄明白这一点,想分享知识并节省一些时间,所以请看下面的答案.但是,我仍然需要Linux的答案,所以如果你知道,请回答,因为我的答案中的代码仅适用于Windows.
更新:我也想到了Linux,包括前Python 3.3(例如:Raspberry Pi),我在下面的答案中发布了我的新模块/代码.
我原来的问题:如何在Python中获得毫秒和微秒分辨率的时间戳?我也喜欢类似Arduino的延迟和delayMicroseconds()函数.
几个月前,这个问题被标记为这个问题的副本.看这里:
它说,"这个问题在这里已有答案." 不幸的是,这不是真的.几年前我在问这个问题之前就读过这些答案了,他们没有回答我的问题,也没有满足我的需要.它们和我的问题一样不适用,因为它是最黑的回答,因为它依赖于time模块,因为它依赖于模块,因为它不具有任何类型的保证分辨率,因此它是不可思议的错误:
请重新打开我的问题.它不是重复的.它没有其他问题的事先答案.链接已经包含答案的问题依赖于time模块,甚至表明它的解决方案已经到处都是.最热门的答案是使用16毫秒的答案引用Windows分辨率,这比我在此提供的答案(0.5 美分分辨率)差32000倍.同样,我需要1 ms和1 us(或类似)分辨率,而不是16000 us分辨率.因此,它不是重复的.
谢谢你的时间.:)
在我的应用程序中,如果时间在用户选择的一天中的某些小时之间,我将更新一些内容。如果用户选择像“07-21”这样的东西,它工作正常,但不是“21-07”,这是一夜之间。我如何检查时间是获取当前小时并将其转换为毫秒。然后我检查当前的毫秒数是否在所选的小时数之间(那些也被转换为毫秒)。像这样:
if (currentMilli >= startHourMilli && currentMilli <= endHourMilli)
Run Code Online (Sandbox Code Playgroud)
问题:如果用户选择超过午夜的任何内容(例如 19-08),它就不起作用。
我已经尝试了很多东西,但我就是不知道如何做到这一点。
任何帮助表示赞赏!
我从我的MongoDB数据库中获取了一个时间戳,但它只在秒内以精确度返回:
2013年6月6日16:15:22 GMT-0400(东部夏令时间)
我需要更大的粒度.有没有办法在毫秒内获得具有精度的MongoDB时间戳?
我正在通过mongoose在我的node.js服务器上进行调用:
var timestamp = new ObjectID().getTimestamp();
Run Code Online (Sandbox Code Playgroud)
我怎样才能获得更精确的东西?
有没有办法更新表中的所有列
2010-12-31 23:59:59.000
Run Code Online (Sandbox Code Playgroud)
至
2010-12-31 00:00:00.000
Run Code Online (Sandbox Code Playgroud)
这样的事情?
UPDATE t1
SET [Posting Date] = [Posting Date] with ms = 00:00:00.000
WHERE ms = other than 00:00:00.000
GO
Run Code Online (Sandbox Code Playgroud) 我正在解析datetime值,如下所示:
df['actualDateTime'] = pd.to_datetime(df['actualDateTime'])
Run Code Online (Sandbox Code Playgroud)
如何将此datetime对象转换为毫秒?
我没有看到to_datetime文档中提到的毫秒数.
更新(基于反馈):这是提供错误的代码的当前版本TypeError: Cannot convert input to Timestamp.该列Date3必须包含毫秒(作为datetime对象的数字等效项).
import pandas as pd
import time
s1 = {'Date' : ['2015-10-20T07:21:00.000','2015-10-19T07:18:00.000','2015-10-19T07:15:00.000']}
df = pd.DataFrame(s1)
df['Date2'] = pd.to_datetime(df['Date'])
t = pd.Timestamp(df['Date2'])
df['Date3'] = time.mktime(t.timetuple())
print df
Run Code Online (Sandbox Code Playgroud) 在 Nodejs 应用程序中,我使用Sequelize ORM将记录写入 mysql 数据库。默认情况下,每个表都有一个createdAt字段,但它只记录带秒的日期时间:
mysql> SELECT createdAt FROM ticks LIMIT 3;
+---------------------+
| createdAt |
+---------------------+
| 2017-11-08 16:34:21 |
| 2017-11-08 16:34:15 |
| 2017-11-08 16:34:27 |
+---------------------+
3 rows in set (0.00 sec)
Run Code Online (Sandbox Code Playgroud)
由于我正在运行一个对时间非常敏感的服务,我还想记录毫秒。在文档中我找到了数据类型,其中包括:
Sequelize.DATE(6) // DATETIME(6) for mysql 5.6.4+. Fractional seconds support with up to 6 digits of precision
Run Code Online (Sandbox Code Playgroud)
不过,我从来没有显式地写入createdAt字段(Sequelize会自动执行此操作),所以我不确定如何才能使其写入毫秒。
有人能给我指出正确的方向,以使用毫秒精度使用createdAt字段保存记录吗?欢迎所有提示!
我正在尝试记录一段时间内流逝的毫秒时间。
我有一堂这样的课
// class member declarations
class MyClass {
std::chrono::high_resolution_clock::time_point m_start;
std::chrono::system_clock::duration m_elapsed;
};
Run Code Online (Sandbox Code Playgroud)
我在课堂上有两种方法。一个是从 main 调用的func1CalledFromMainThread。
// Class methods
using namespace std::chrono;
void MyClass::func1CalledFromMainThread() {
m_start = std::chrono::high_resolution_clock::now();
}
Run Code Online (Sandbox Code Playgroud)
另一个是func2CalledFromADifferentThread从不同的线程调用的
void MyClass::func2CalledFromADifferentThread() {
// after some time following line of code runs from a different thread
auto end = high_resolution_clock::now();
m_elapsed = duration_cast<milliseconds>(end - m_start);
std::cout << "Elapsed time in milliseconds is " << m_elapsed.count()/1000 << std::endl;
}
Run Code Online (Sandbox Code Playgroud)
问题出在cout日志记录中。我发现我必须除以1000才能得到毫秒m_elapsed。不 …