我有創造的蒙戈數據庫的Java VS C#毫秒時間戳代
private static long ukTimeStringToUtcMillis(String s) {
SimpleDateFormat sdf = makeSimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS");
try {
return sdf.parse(s).getTime();
} catch (ParseException e) {
throw new RuntimeException(e);
}
}
private static SimpleDateFormat makeSimpleDateFormat(String s) {
SimpleDateFormat sdf = new SimpleDateFormat(s);
sdf.setTimeZone(TimeZone.getTimeZone("Europe/London"));
return sdf;
}
毫秒時間戳和地方它,我創造「2015年10月1日00:00時戳下面的Java代碼: 00" 使用簡單
long l = ukTimeStringToUtcMillis("2015-10-01T00:00:00.000");
這給了我的14436.54億時間戳【JAVA],使用http://www.epochconverter.com/epoch/timezones.php?epoch=1443654000000&tz=Europe%2FLondon我們可以看到,這給「中時區歐洲/倫敦星期四2015年10月1日00:00:00(上午) (BST)」。現在
,我的問題(或缺乏理解!)是,我有相當的代碼在C#中做轉換爲Unix毫秒爲單位
public static class DateTimeHelpers
{
public static DateTime UnixEpoch()
{
return new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);
}
public static DateTime FromMillisecondsSinceUnixEpoch(long milliseconds)
{
return UnixEpoch().AddMilliseconds(milliseconds).ToUniversalTime();
}
public static long ToMillisecondsSinceUnixEpoch(DateTime dateTime)
{
return (long)(dateTime - UnixEpoch()).TotalMilliseconds;
}
}
,要獲得該毫秒「2015年10月1日00:00:00" 我做
DateTime dt = new DateTime(2015, 10, 1, 0, 0, 0, 0, DateTimeKind.Utc);
long l = DateTimeHelpers.ToMillisecondsSinceUnixEpoch(dt);
但是這給l = 1443657600000
[C#]其轉化http://www.epochconverter.com/epoch/timezones.php?epoch=1443657600000&tz=Europe%2FLondon給 「週四2015年10月1日01:00:00(上午)在時區歐洲/倫敦(BST)」 。
- 這是爲什麼給+01:00?
- 我怎樣才能獲得C#代碼產生究竟什麼的Java呢?
這是非常重要的,我可以一致地從兩種語言查詢數據庫中的時間戳,但目前C#給我一個小時的差異。
感謝您的時間。
答案:爲了得到這個工作,我改變了方法
public static long ToMillisecondsSinceUnixEpoch(DateTime dateTime)
{
return (long)(dateTime.ToUniversalTime().Subtract(UnixEpoch())).TotalMilliseconds;
}
和使用
DateTime dt = new DateTime(2015, 10, 1, 0, 0, 0, 0);
lonf l = DateTimeHelpers.ToMillisecondsSinceUnixEpoch(dt);
注缺乏DateTimeKind
並在新ToMillisecondsSinceUnixEpoch()
方法使用ToUniversalTime()
。
但是,我並不十分感謝DateTime
在我使用ToUniversalTime()
之前所做的事情。在創建初始DateTime
的使用DateTimeKind.UTC
應該這樣做?任何關於DateTime
在這個(對我來說奇怪的情況下)發生了什麼澄清,將不勝感激。